如何将stringArrayList写入文本文件?
我想写一个ArrayList<String>
到一个文本文件。
ArrayList
是使用以下代码创build的:
ArrayList arr = new ArrayList(); StringTokenizer st = new StringTokenizer( line, ":Mode set - Out of Service In Service"); while(st.hasMoreTokens()){ arr.add(st.nextToken()); }
import java.io.FileWriter; FileWriter writer = new FileWriter("output.txt"); for(String str: arr) { writer.write(str); } writer.close();
你现在可以用一行代码来做到这一点。 创build表示要写入的文件的arrayList和Path对象:
Path out = Paths.get("output.txt"); List<String> arrayList = new ArrayList<> ( Arrays.asList ( "a" , "b" , "c" ) );
创build实际的文件,并用ArrayList中的文本填充它:
Files.write(out,arrayList,Charset.defaultCharset());
如果你想序列化ArrayList对象到一个文件,所以你可以稍后再读回来使用ObjectOuputStream / ObjectInputStream writeObject()/ readObject(),因为ArrayList实现了Serializable 。 从你的问题来看,我不清楚你是要做这个还是只写一个单独的项目。 如果是这样的话,安德烈的回答就能做到。
你可能会使用ArrayList重载方法toString()
String tmp=arr.toString(); PrintWriter pw=new PrintWriter(new FileOutputStream(file)); pw.println(tmp.substring(1,tmp.length()-1));
如果您需要在一行中创build每个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(); }