Java 将数组写入/读取到文件

Java 将数组写入/读取到文件,java,arrays,file,save,Java,Arrays,File,Save,我有一个应用程序可以创建3个数组:2个数组包含double值,另一个带有字符串,可以包含任何内容,字母数字、逗号、点,以及用户可能想要键入或意外键入的任何内容。double数组很简单。我发现字符串数组很棘手。 它可以包含像蛋糕红,蓝,1kg之类的东西,你会得到理想的效果 我需要以某种方式存储这些数组(我想在一个文件中是最简单的方法),读取它们并在用户需要时将它们返回到应用程序中 而且,如果它们不是人类可读的,那就好了,只能通过我的应用程序读取它们 最好的方法是什么?我的问题是,如何将它们读回数组

我有一个应用程序可以创建3个数组:2个数组包含
double
值,另一个带有字符串,可以包含任何内容,字母数字、逗号、点,以及用户可能想要键入或意外键入的任何内容。
double
数组很简单。我发现字符串数组很棘手。 它可以包含像蛋糕红,蓝,1kg之类的东西,你会得到理想的效果

我需要以某种方式存储这些数组(我想在一个文件中是最简单的方法),读取它们并在用户需要时将它们返回到应用程序中

而且,如果它们不是人类可读的,那就好了,只能通过我的应用程序读取它们

最好的方法是什么?我的问题是,如何将它们读回数组。写入文件很容易,但要将它们读回我放入的同一个数组中……我如何分离数组元素,使其不将一个元素一分为二,因为它有一个
空间
或任何其他元素

我可以这样做吗,制作3行文本,每个元素由一个选项卡拆分
\t
或其他什么,当我阅读它时,每个元素将由该选项卡拆分?阅读时,这是否会产生任何问题? 我想我想知道如何分割数组的元素,这样它就永远不会读错


谢谢,祝你今天愉快

如果您不希望该文件是人类可读的,可以使用
java.io.RandomAccessFile
。 如果这样做,您可能需要指定最大字符串大小

要保存字符串,请执行以下操作:

String str = "hello";
RandomAccessFile file = new RandomAccessFile(new File("filename"));
final int MAX_STRING_BYTES = 100; // max number of bytes the string could use in the file   
file.writeUTF(str);
file.skipBytes(MAX_STRING_BYTES - str.getBytes().length);
// then write another..
要读取字符串,请执行以下操作:

// instantiate again
final int STRING_POSITION = 100; // or whichever place you saved it
file.seek(STRING_POSITION);
String str = new String(file.read(MAX_STRING_BYTES));

您可能需要在文件的开头使用一个函数来存储每个数组的大小。然后将所有值逐个存储在文件中,无需使用分隔符。

您可以为单词separator使用特殊字符,也可以将数据存储在JSON中;或者我会使用或;我需要看到更多的需求才能真正做出决定。