【问题标题】:How to preserve line breaks when writing ArrayList to file with ObjectOutputStream? [closed]使用 ObjectOutputStream 将 ArrayList 写入文件时如何保留换行符? [关闭]
【发布时间】:2020-12-29 12:23:28
【问题描述】:

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

【问题讨论】:

  • 该教程是关于如何将ArrayList序列化二进制文件。二进制文件没有换行符或换行符,ArrayLists 也没有。你的问题没有意义。

标签: java arraylist line-breaks objectoutputstream


【解决方案1】:

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

但是,ObjectOutputStream 不会显式删除换行符。当您将输入文本转换为 ArrayList 时,换行符更有可能被删除。

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


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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多