如何将数组写入文件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));