Как добавить несколько пустых записей, а затем добавить к ним данные

Я изо всех сил пытался понять эту область в Java, поэтому я подумал, что, возможно, кто-то онлайн может помочь с этим. По сути, мне нужно "простить" 9 000 пустых записей (для банка), а затем выбрать ввод данных в определенных областях (например, номер счета, имя, баланс).

Я знаю, что я должен использовать для петель, но я не знаю, куда они должны идти. В настоящее время я могу создать 9000 записей, но после ввода данных для одной записи она просто дублирует 9,0000 раз, вместо того, чтобы поместить запись в одно конкретное место и оставить остальные пустыми.

import java.nio.file.*;
import java.io.*;
import static java.nio.file.StandardOpenOption.*;
import java.util.Scanner;

public class WriteEmployeeFile
{
  public static void main(String[] args)
  {
    Scanner input = new Scanner(System.in);
    File myFile = new File ("C:\\Users\\USSI\\Desktop\\CustomerRecords.txt");
    Path file = Paths.get("C:\\Users\\USSI\\Desktop\\CustomerRecords.txt");
    String s = "000, ,00.00" +
    System.getProperty("line.separator");
    String delimiter = ",";
    int account;
    String name;
    double balance;
    final int QUIT = 999;
    final int MAX = 9001;

    try
    {
        OutputStream output = new
        BufferedOutputStream(Files.newOutputStream(file, CREATE));
        BufferedWriter writer = new
        BufferedWriter(new OutputStreamWriter(output));
        System.out.print("Enter client account number: ");
        account = input.nextInt();

        while(account != QUIT)
        {
            System.out.print("Enter last name for client #" +
            account + ": ");
            input.nextLine();
            name = input.nextLine();
            System.out.print("Enter account balance: ");
            balance = input.nextDouble();
            s = account + delimiter + name + delimiter + balance;

            for(int count = 0; count < MAX; ++count)
                writer.write(s, 0, s.length());

            writer.newLine();
            System.out.print("Enter next ID number or " +
            QUIT + " to quit: ");
            account = input.nextInt();
        }
        writer.close();
    }
    catch(Exception e)
    {
        System.out.println("Message: " + e);
    }
 }
}

РЕДАКТИРОВАТЬ: Это мои инструкции назначения (если кому-то было любопытно, или если я не объяснил это четко.

Winter Park Bank ведет записи клиентов в файле произвольного доступа. Напишите приложение, которое создает 9 000 пустых записей, а затем позволяет пользователю вводить информацию об учетной записи клиента, включая номер счета 9999 или менее, фамилию и баланс. Вставьте каждую новую запись в файл данных в месте, которое равно номеру счета. Предположим, что пользователь не будет вводить неверные номера счетов. Приведите каждое имя к восьми символам, добавляя его с пробелами или обрезая его при необходимости. Также предположим, что пользователь не будет вводить банковский баланс больше, чем 99,000.00. Сохраните файл как WinterParkBankFile.java.

1 ответ

Не уверен, что вы хотите, но чтобы дать представление о том, чтобы мгновенно создать 9000 банковских счетов, а затем получить к ним доступ по месту в списке, который они помещают:

class BankAccount {
    int number;
    int balance;
    String name;

    public static void main(String[] args) {

        List<BankAccount> accounts = new ArrayList<BankAccount>();

        for (int i = 0; i < 9000; i++) {
            accounts.add(new BankAccount());
        }

        // fill these variables from console however you want
        int i = 0;
        int balanceReadFromConsole = 0;
        int numberReadFromConsole = 0;

        accounts.get(i).name = "Whatever you want to set as the i-th account's name";
        accounts.get(i).balance = balanceReadFromConsole;
        accounts.get(i).number = numberReadFromConsole;

    }
}
Другие вопросы по тегам