Как добавить несколько пустых записей, а затем добавить к ним данные
Я изо всех сил пытался понять эту область в 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;
}
}