[英]how to write an array to a file Java
我一直在尝试将数组写入文件。 我知道如何将整数或字符串写入文件,但是要带一个数组会使我感到困惑。 我现在正在使用这个:
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();
}
您可以使用ObjectOutputStream
类将对象写入基础流。
outputStream = new ObjectOutputStream(new FileOutputStream(filename));
outputStream.writeObject(x);
然后像这样读回Object
-
inputStream = new ObjectInputStream(new FileInputStream(filename));
x = (int[])inputStream.readObject()
就像其他人说的那样,您可以遍历数组并逐一打印出元素。 为了使输出显示为数字而不是您看到的“字母和符号”,您需要将每个元素转换为字符串。 因此,您的代码将如下所示:
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));
如果您对Apache Commons lib没问题
outputWriter.write(ArrayUtils.join(array, ","));
只需遍历数组中的元素即可。
例如:
for(int i=0; numOfElements > i; i++)
{
outputWriter.write(array[i]);
}
//finish up down here
private static void saveArrayToFile(String fileName, int[] array) throws IOException {
Files.write( // write to file
Paths.get(fileName), // get path from file
Collections.singleton(Arrays.toString(array)), // transform array to collection using singleton
Charset.forName("UTF-8") // formatting
);
}
如果结果供人类阅读并且数组的元素已定义了正确的toString()
...
outputString.write(Arrays.toString(array));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.