Loc*_*618 6 java arrays loops file bufferedwriter
我一直在尝试将数组写入文件.我知道如何将整数或字符串写入文件但是让数组混淆了我.我现在正在使用它:
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();
}
Run Code Online (Sandbox Code Playgroud)
Sub*_*der 13
您可以使用ObjectOutputStream
该类将对象写入基础流.
outputStream = new ObjectOutputStream(new FileOutputStream(filename));
outputStream.writeObject(x);
Run Code Online (Sandbox Code Playgroud)
并阅读Object
背面像 -
inputStream = new ObjectInputStream(new FileInputStream(filename));
x = (int[])inputStream.readObject()
Run Code Online (Sandbox Code Playgroud)
Win*_*dle 13
像其他人说的那样,你可以循环遍历数组并逐个打印出元素.要使输出显示为数字而不是您看到的"字母和符号",您需要将每个元素转换为字符串.所以你的代码变成这样:
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();
}
Run Code Online (Sandbox Code Playgroud)
如果您只想打印出类似的数组[1, 2, 3, ....]
,可以用这一个衬里替换循环:
outputWriter.write(Arrays.toString(x));
Run Code Online (Sandbox Code Playgroud)