ObjectOutputStream是人类可读的

时间:2015-08-22 04:12:13

标签: java file-io arraylist io

我正在尝试读取和写入一个ArrayList到一个文件,并且当前正在使用ObjectOutputStream来写入该文件。

display: inline-flex;

fout = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(arraylist); fout.close(); 变量是一个ojects的ArrayList。此方法可以正常工作,但它以非人类可读的格式打印到文件中。

有没有办法实现相同的功能(相对容易),以便以人类可读的方式将对象写入文件?

3 个答案:

答案 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