2012-11-28 203 views
1

我試圖將文件中的所有元素存儲在文件中供以後檢索,因此程序關閉時數據不會丟失。這可能嗎?我寫了一些代碼嘗試,但這不是我想要的。這是我迄今爲止所寫的。將列表寫入文件

import java.util.*; 
import java.io.*; 
public class Launch { 
    public static void main(String[] args) throws IOException { 
     int[] anArray = {5, 16, 13, 1, 72}; 
     List<Integer> aList = new ArrayList(); 
     for (int i = 0; i < anArray.length; i++) { 
      aList.add(anArray[i]); 
     } 
     File file = new File("./Storage.txt"); 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 
     FileWriter fw = new FileWriter(file); 
     BufferedWriter bw = new BufferedWriter(fw); 
     for (int i = 0; i < aList.size(); i++) { 
      bw.write(aList.get(i)); 
     } 
     bw.flush(); 
     bw.close(); 
    } 
} 

建議?

編輯:我正在尋找數組本身寫入文件,但這是寫什麼。 enter image description here

+3

「這不是我想要的」 - 你想要什麼? – Abubakkar

+0

閱讀帖子的結尾,我剛剛編輯它。 – Dan

回答

3
import java.util.*; 
import java.io.*; 
public class Launch { 
    public static void main(String[] args) throws IOException { 
     int[] anArray = {5, 16, 13, 1, 72}; 
     List<Integer> aList = new ArrayList(); 
     for (int i = 0; i < anArray.length; i++) { 
      aList.add(anArray[i]); 
     } 
     File file = new File("./Storage.txt"); 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 
     FileWriter fw = new FileWriter(file); 
     BufferedWriter bw = new BufferedWriter(fw); 
     for (int i = 0; i < aList.size(); i++) { 
      bw.write(aList.get(i).toString()); 
     } 
     bw.flush(); 
     bw.close(); 
    } 
} 

我編輯的bw.write線寫之前修改int一個字符串。

0

如果您想要它寫入實際的號碼,請改爲使用PrintWriter

PrintWriter pw = new PrintWriter(new File(...)); 
pw.print(aList.get(i)); 
+0

...或者你仍然可以使用BufferedWriter,只能在列表項上使用'toString()',如下面的@ nair.ashvin所示。 – Isaac

0

剛學會了這個乾淨的解決方案。使用apache commons-io的FileUtils

File file = new File("./Storage.txt"); 
FileUtils.writeLines(file, aList, false); 

如果您想追加到文件,如果它已經存在,請將false更改爲true。