2

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

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

建议?

编辑:我正在寻找要写入文件的数组本身,但这就是正在写入的内容。 在此处输入图像描述

4

3 回答 3

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 更改为字符串。

于 2012-11-28T03:42:45.163 回答
1

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

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

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

于 2017-11-07T06:27:46.297 回答
0

如果您希望它写入实际数字,请使用 aPrintWriter代替。

PrintWriter pw = new PrintWriter(new File(...));
pw.print(aList.get(i));
于 2012-11-28T03:43:39.443 回答