将列表列表写入Java文本文件

将列表列表写入Java文本文件,java,arraylist,Java,Arraylist,我有一个列表要写在文本文件中: ArrayList<ArrayList<String>> list = new ArrayList<>(); 写入文本文件: Path sPath = Paths.get("output.txt"); for (ArrayList sampleArr: list){ Files.write(sPath,sampleArr); } 错误: 代码可以工作,但错误是文件output.txt的内容得到更新 output.

我有一个列表要写在文本文件中:

ArrayList<ArrayList<String>> list = new ArrayList<>();
写入文本文件:

Path sPath = Paths.get("output.txt");
for (ArrayList sampleArr: list){ 
    Files.write(sPath,sampleArr);
 }
错误:

代码可以工作,但错误是文件
output.txt
的内容得到更新

output.txt的预期内容:

sample_string_one
sample_string_two
sample_string_three
sample_string_four
sample_string_five
sample_string_six
原始内容:

sample_string_four
sample_string_five
sample_string_six
本质上,文件的内容会使用列表列表中最新的内部列表进行更新。任何解决这一问题的建议都非常好。

试试以下方法:

Files.write(路径、列表、StandardOpenOption.APPEND);
从文件中:

如果不存在任何选项,则此方法的工作原理与存在
CREATE
TRUNCATE\u EXISTING
WRITE
选项一样

公共静态最终标准openoption截断现有的
如果该文件已存在,并且已打开以进行
写入
访问,则其长度将被截断为0。如果仅为
READ
访问打开文件,则忽略此选项

你想要的是:

公共静态最终标准openoption APPEND

如果打开文件进行
写入
访问,则字节将写入文件的末尾而不是开头。 如果其他程序打开该文件进行写访问,则如果向文件末尾写入是原子的,则该文件是特定于文件系统的

试试这个:

Files.write(路径、列表、StandardOpenOption.APPEND);
从文件中:

如果不存在任何选项,则此方法的工作原理与存在
CREATE
TRUNCATE\u EXISTING
WRITE
选项一样

公共静态最终标准openoption截断现有的
如果该文件已存在,并且已打开以进行
写入
访问,则其长度将被截断为0。如果仅为
READ
访问打开文件,则忽略此选项

你想要的是:

公共静态最终标准openoption APPEND

如果打开文件进行
写入
访问,则字节将写入文件的末尾而不是开头。 如果其他程序打开该文件进行写访问,则如果向文件末尾写入是原子的,则该文件是特定于文件系统的

sample_string_four
sample_string_five
sample_string_six