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

时间:2011-07-01 12:48:13

标签: 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());    
}

7 个答案:

答案 0 :(得分:70)

import java.io.FileWriter;
...
FileWriter writer = new FileWriter("output.txt"); 
for(String str: arr) {
  writer.write(str);
}
writer.close();

答案 1 :(得分:41)

现在,您只需使用一行代码即可。 创建arrayList和表示要写入文件的Path对象:

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

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

Files.write(out,arrayList,Charset.defaultCharset());

答案 2 :(得分:5)

我建议使用来自Apache Commons IO库的FileUtils。如果它们不存在,它将创建输出文件的父文件夹。而b = [np.array(row).mean(axis=0) for row in zip(*a)] 将不会这样做,如果父目录没有,则抛出异常不存在。

Files.write(out,arrayList,Charset.defaultCharset());

答案 3 :(得分:4)

如果需要在一行中创建每个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();
    }

答案 4 :(得分:3)

如果要将ArrayList对象序列化为文件以便以后再次读取它,请使用ObjectOuputStream / ObjectInputStream writeObject()/ readObject(),因为ArrayList实现了Serializable。如果您想要这样做或者只是编写每个单独的项目,我对您的问题并不清楚。如果是这样,那么安德烈的回答就是这样。

答案 5 :(得分:2)

您可以使用ArrayList重载方法toString()

String tmp=arr.toString();
PrintWriter pw=new PrintWriter(new FileOutputStream(file));
pw.println(tmp.substring(1,tmp.length()-1));

答案 6 :(得分:1)

我认为你也可以使用BufferedWriter:

BufferedWriter writer = new BufferedWriter(new FileWriter(new File("note.txt")));

String stuffToWrite = info;

writer.write(stuffToWrite);

writer.close();

之前记得太添加

import java.io.BufferedWriter;