Ich habe ein Problem mit dem Lesen eines bestimmten Objekts aus einer Datei und dem Speichern in ArrayList.Objekt aus einer Datei lesen und in ArrayList speichern
Zuerst schreibe ich einen einzelnen Kunden mit writeCustomer()
. Dann schreibe ich alle Datensätze von List customerList
und speichere sie in der Datei. Das funktioniert großartig.
Dann möchte ich die gespeicherte Datei lesen, also lese ich eine Zeile mit readCustomer()
. Diese Methode gibt eine Customer
zurück und dann möchte ich eine Liste mit allen Clients
mit readData()
zurückgeben und lesen, ich habe nullPointerException in Zeile list.add (readCustomer (bufferedReader));
Meine Class Customer
hat einen Konstruktor und hat eine Override-Methode 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;
}}
"* Ich habe ein Problem .... es funktioniert nicht *" - was genau passiert? Ausnahme? Falsche Ausgabe? Endlosschleife? –
Danke Sasha für die Verringerung meines Rufes. Ich hoffe, dass du es getan hast, hast du bessere Laune .... – bartek1982
Ich habe nicht runtergestimmt, wenn du interessiert bist. Kommentar ist manchmal nur ein Kommentar. Die meisten Leute, die einen Downvote machen, kommentieren überhaupt nicht. –