我正在尝试读取和写入一个ArrayList到一个文件,并且当前正在使用ObjectOutputStream来写入该文件。
display: inline-flex;
fout = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(arraylist);
fout.close();
变量是一个ojects的ArrayList。此方法可以正常工作,但它以非人类可读的格式打印到文件中。
有没有办法实现相同的功能(相对容易),以便以人类可读的方式将对象写入文件?
答案 0 :(得分:4)
您可以使用人类可读的Json表示。
例如使用杰克逊:
ObjectWriter ow = new ObjectMapper().writer();
ow.writeValue(fout, arraylist);
回读:
List<E> myObjects = new ObjectMapper().readValue(inputStream,
new TypeReference<List<E>>(){});
答案 1 :(得分:3)
我认为您需要做的是使用PrintWriter,并且每次都将数组列表打印循环到新文件。尝试:
Index()
希望这有帮助!
答案 2 :(得分:2)
由于您使用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");
}
执行相同操作。
fd=@ViewBag.FromDate&td=@ViewBag.ToDate