我试图从文件中读取所有对象并将其保存到数组中。但是,我得到一个StreamCorruptedException。另一个问题:它是无关的:每当我查看存储在其中的对象的文件时,它就是对象语言。有可能把它变成人类可读的语言吗?
public void generateLibReport() throws IOException, FileNotFoundException, ClassNotFoundException{
ObjectInputStream ois = new ObjectInputStream(new
FileInputStream("LibrarianFile.txt"));
boolean check = true;
ArrayList<Librarian> array = new ArrayList();
while(check){
try{
Librarian librarian = (Librarian)ois.readObject();
array.add((Librarian)librarian);
}
catch(EOFException e){
for(Librarian l:array){
System.out.println(l);
}
check = false;
ois.close();
}
}
}
答案 0 :(得分:0)
如果您想使用可读语言,请尝试以JSON
格式保存对象。
例如,使用Gson
库。
void save(List<Librarian> libs) {
String json = gson.toJson(libs);
//save json text in simple text file
}
List<Librarian> load(String filename) {
//read text file to json variable
String json = ...;
return gson.fromJson(json, new TypeToken<List<Librarian>>(){});
}
这样可以解决这两个问题。