我正在尝试将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();
}
}
建议?
编辑:我正在寻找要在文件中编写的数组本身,但这就是写作。
答案 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,以防它已存在。