如何将字符串的ArrayList写入文本文件?

Ric*_*cky 41 java

我想写ArrayList<String>一个文本文件.

ArrayList与代码创建的:

ArrayList arr = new ArrayList();

StringTokenizer st = new StringTokenizer(
    line, ":Mode set - Out of Service In Service");

while(st.hasMoreTokens()){
    arr.add(st.nextToken());    
}
Run Code Online (Sandbox Code Playgroud)

And*_*ich 75

import java.io.FileWriter;
...
FileWriter writer = new FileWriter("output.txt"); 
for(String str: arr) {
  writer.write(str + System.lineSeparator());
}
writer.close();
Run Code Online (Sandbox Code Playgroud)

  • 它是保存对数组引用的变量的名称 (3认同)

小智 45

如今,您可以使用一行代码完成此操作.创建arrayList和Path对象,表示要写入的文件:

Path out = Paths.get("output.txt");
List<String> arrayList = new ArrayList<> ( Arrays.asList ( "a" , "b" , "c" ) );
Run Code Online (Sandbox Code Playgroud)

创建实际文件,并使用ArrayList中的文本填充它:

Files.write(out,arrayList,Charset.defaultCharset());
Run Code Online (Sandbox Code Playgroud)


cha*_*ang 8

我建议使用Apache Commons IO库中的FileUtils。它将创建输出文件的父文件夹( Files.write(out,arrayList,Charset.defaultCharset());如果不存在)。而不会这样做,如果父目录不存在,则会抛出异常。

FileUtils.writeLines(new File("output.txt"), encoding, list);
Run Code Online (Sandbox Code Playgroud)


Jos*_*raj 5

如果您需要在一行中创建每个 ArrayList 项目,那么您可以使用此代码

private void createFile(String file, ArrayList<String> arrData)
            throws IOException {
        FileWriter writer = new FileWriter(file + ".txt");
        int size = arrData.size();
        for (int i=0;i<size;i++) {
            String str = arrData.get(i).toString();
            writer.write(str);
            if(i < size-1)**//This prevent creating a blank like at the end of the file**
                writer.write("\n");
        }
        writer.close();
    }
Run Code Online (Sandbox Code Playgroud)