ファイルから特定のオブジェクトを読み取り、ArrayListに保存する際に問題があります。ファイルからオブジェクトを読み込んでArrayListに保存する
最初に、writeCustomer()
を使用して単一の顧客を作成します。次に、すべてのレコードをList customerList
から書き込み、ファイルに保存します。これは素晴らしいです。
私はreadCustomer()
を使って1行を読むので、保存したファイルを読みたいと思います。このメソッドはCustomer
を返します。そしてreadData()
を使用してすべてClients
のリストを返したいのですが、それを読んで、私はlist.add(readCustomer(bufferedReader))のnullPointerExceptionを持っています。
私のClass Customer
には1つのコンストラクタがあり、オーバーライドメソッドtoString()
を持っています。
public class SaveCustomers {
public static void main(String[] args) throws IOException {
List<Customers> customersList = new ArrayList<>();
customersList.add(new Customers("ABC", 10));
customersList.add(new Customers("SGS", 20));
customersList.add(new Customers("FSD", 30));
try (PrintWriter out = new PrintWriter("customer.txt", "UTF-8"))
{ writeData(customersList, out); }
BufferedReader bufferedReader = new BufferedReader(new FileReader("customer.txt"));
List<Customers> newList = readData(bufferedReader);
for(Customers c: newList){
System.out.println(c);
}
}
private static void writeCustomer(PrintWriter out, Customers customers){
out.println(customers.getName()+"|"+customers.getTarrif());
}
private static void writeData(List<Customers> customersList, PrintWriter out){
for(Customers c:customersList){
writeCustomer(out, c);
}
}
public static Customers readCustomer(BufferedReader bufferedReader) throws IOException {
String line = bufferedReader.readLine();
String [] tokens = line.split("\\|");
String name = tokens[0];
int time = Integer.valueOf(tokens[1]);
return new Customers(name, time);
}
public static List<Customers> readData(BufferedReader bufferedReader) throws IOException {
List<Customers> list = new ArrayList<>();
while (bufferedReader.readLine() != null) {
list.add(readCustomer(bufferedReader));
}
return list;
}}
"問題がある....それは動作しない*" - どういうことが起こりますか?例外?間違った出力?無限ループ? –
私の評判を落としてくれてありがとうSasha。私はあなたのおかげで気分が良くなったことを願っています。 – bartek1982
興味があれば、私はダウンボートしませんでした。コメントはちょうどコメントです。 downvoteのほとんどの人は全くコメントしません。 –