我想在文本文件中写一个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());
}
答案 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;