[英]ObjectOutputStream human-readable
我正在嘗試讀取和寫入一個ArrayList到一個文件,並且當前使用ObjectOutputStream寫入該文件。
fout = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(arraylist);
fout.close();
arraylist
變量是一個ojects的ArrayList。 此方法可以正常工作,但它以非人類可讀的格式打印到文件中。
有沒有辦法實現相同的功能(相對容易),以便以人類可讀的方式將對象寫入文件?
您可以使用人類可讀的Json表示。
例如使用傑克遜:
ObjectWriter ow = new ObjectMapper().writer();
ow.writeValue(fout, arraylist);
回讀:
List<E> myObjects = new ObjectMapper().readValue(inputStream,
new TypeReference<List<E>>(){});
我認為您需要做的是使用PrintWriter,並且每次都將數組列表打印循環到新文件。 嘗試:
PrintWriter writer = new PrintWriter(outputFile);
for (int i=0;i<<name>.length;i++){
writer.println(<ArrayListName>[i].getString(), + "\t" + <ArrayListName>[i].getFirstInt() + "\t" + <name>.[i].getSecondInt +<etc...>);
}
希望這可以幫助!
由於您正在使用ObjectOutputStream
,因此它將該數據的二進制序列化版本寫入文件,該文件是非人類可讀的。 但是,您可以使用BufferedWriter
執行相同操作。
//Sample code
try{
ArrayList<YourObject> yourObjectList;
BufferedWriter writer = new BufferedWriter(new FileWriter("C:/yourPath/fileName.txt"));
for (YourObject oneObjAtATime : yourObjectList) {
writer.write(oneObjAtATime.toString());
}
}catch(Exception e){
throw new Exception("error");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.