如何将数组写入文件Java
我一直在试图写一个数组到一个文件。 我知道如何写整数或string到一个文件,但带来一个数组混淆我。 我现在正在使用这个:
public static void write (String file, int[]x) throws IOException{ BufferedWriter outputWriter = null; outputWriter = new BufferedWriter(new FileWriter(filename)); outputWriter.write("hi");// Here I know i cant just write x[0] or anything. Do i need //to loop in order to write the array? outputWriter.newLine(); outputWriter.flush(); outputWriter.close(); }
像其他人一样,你可以遍历数组并逐个打印出元素。 为了使输出显示为数字而不是“字母和符号”你看到,你需要将每个元素转换为一个string。 所以你的代码变成这样:
public static void write (String filename, int[]x) throws IOException{ BufferedWriter outputWriter = null; outputWriter = new BufferedWriter(new FileWriter(filename)); for (int i = 0; i < x.length; i++) { // Maybe: outputWriter.write(x[i]+""); // Or: outputWriter.write(Integer.toString(x[i]); outputWriter.newLine(); } outputWriter.flush(); outputWriter.close(); }
如果你只是想打印出像[1, 2, 3, ....]
这样的数组,你可以用这一行代替循环:
outputWriter.write(Arrays.toString(x));
您可以使用ObjectOutputStream
类将对象写入基础stream。
outputStream = new ObjectOutputStream(new FileOutputStream(filename)); outputStream.writeObject(x);
并读取Object
回来像 –
inputStream = new ObjectInputStream(new FileInputStream(filename)); x = (int[])inputStream.readObject()
如果你可以使用Apache commons lib
outputWriter.write(ArrayUtils.join(array, ","));
只是循环你的数组中的元素。
例如:
for(int i=0; numOfElements > i; i++) { outputWriter.write(array[i]); } //finish up down here
如果结果是人类阅读和数组的元素有一个正确的toString()
定义…
outputString.write(Arrays.toString(array));