首页 > 解决方案 > 使用 ObjectOutputStream 将 ArrayList 写入文件时如何保留换行符?

问题描述

我正在关注本教程,了解如何使用 将 输出ArrayList到文本文件ObjectOutputStream,但这会从我的原始文件中删除换行符。换句话说,我读入一个文件,对其进行处理,然后将其写回。读入的数据在整个处理过程中仍然是一个 ArrayList。将 ArrayList 写入文件时如何保留换行符?当我将它作为 ArrayList 读取时,我会失去这种能力吗?

标签: javaarraylistline-breaksobjectoutputstream

解决方案


你误解了教程。 ObjectOutputStream不是为输出文本文件而设计的。如果你尝试读取这个类生成的文件,你会看到很多二进制数据;即,如果您尝试将其视为文本,则会显示为不可打印的字符或“垃圾”。

但是,ObjectOutputStream它不会显式删除换行符。当您将输入文本转换为ArrayList.

但这没有实际意义。如果要输出文本文件,请不要使用ObjectOutputStream. 使用 aFileWriter并迭代ArrayList输出每个(erm)行,然后是换行符。


当我以 as 读取时,我会丢失[换行符]ArrayList吗?

这取决于您如何读取输入文件并填充ArrayList. (如果您不向我们展示,我们无法解释您的代码的行为。我们甚至无法确定 的元素类型ArrayList是什么......)


推荐阅读