将列表写入文件

时间:2012-11-28 03:37:06

标签: java list arraylist

我正在尝试将List中的所有元素存储在一个文件中以便以后检索,这样当程序关闭时数据不会丢失。这可能吗?我写了一些代码试试,但这不是我想要的。这是我到目前为止所写的内容。

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 个答案:

答案 0 :(得分: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更改为字符串。

答案 1 :(得分:0)

如果您希望它写出实际数字,请改用PrintWriter

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

答案 2 :(得分:0)

刚刚为此学会了一个干净的解决方案。使用FileUtils apache commons-io。

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

如果要附加到文件,则将false更改为true,以防它已存在。