사용자 정의 서비스 객체를 포함하는 ArrayList가 있습니다. 나는 전체 ArrayList를 File에 쓰고 나중에 읽을 수 있기를 원한다.파일에 사용자 정의 객체의 ArrayList 쓰기
나는 그것을 위해 Gson을 시도했지만 IllegalStateException을 제공합니다. BEGIN_ARRAY가 예상되지만 STRING입니다. 나는 그것이 JSON이어야하는 문자열을 기록하게했다. 그리고 그것은 많은 예외 (String 내부의 텍스트로 .. 어쩌면 변환이 잘못 되었는가?)라고 말했다.
public int saveListToFile(){
String filename = "service_entries";
File file = new File(getFilesDir(), filename);
try {
BufferedWriter buffWriter = new BufferedWriter(new FileWriter(file, true));
Gson gson = new Gson();
String json = gson.toJson(services); //this is the ArrayList<Service>
buffWriter.append(json);
buffWriter.newLine();
buffWriter.close();
} catch (IOException e) {
return -1;
}
return 0;
}
public int readCurrentList(){
String filename = "service_entries";
File file = new File(getFilesDir(), filename);
try {
BufferedReader buffReader = new BufferedReader(new FileReader(file));
String line1, line2;
Gson gson = new Gson();
line1 = buffReader.readLine();
line2 = buffReader.readLine();
if(line1 == null){
buffReader.close();
return 0;
}
Type type = new TypeToken<ArrayList<Service>>(){}.getType();
services = gson.fromJson(line1, type);
ArrayList<Service> list2;
if(line2 != null){
list2 = gson.fromJson(line2, type);
services.addAll(list2);
list2 = null;
}
buffReader.close();
} catch(IOException e){
return -1;
}
return 0;
}
public class Service {
private double quantity;
private String description;
public Service(){
quantity = 0.0;
description = null;
}
}