写入/读取数组到文件

时间:2013-12-13 02:44:02

标签: java arrays file save

我有一个可以创建3个数组的应用程序:2个带有double值的数组,另一个带有可包含任何内容的字符串,字母数字,逗号,点,用户可能想要输入的任何内容或意外输入的内容。 double数组很容易。字符串一我觉得很棘手。 它可以包含cake red,blue 1kg paper-clip等内容,您可以获得ideea。

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

此外,如果它们不是人类可读的,只能通过我的应用程序阅读它们将会很好。

最好的方法是什么?我的问题是,我怎样才能将它们读回到数组中。它很容易写入文件然后将它们放回到同一个数组中我把它们放进去...我怎样才能将数组元素分开以便不拆分一个元素两个因为它有一个space或任何其他元素。

我喜欢,制作3行文本,每个元素都用标签\t或其他东西分割,当我读到它时,每个元素都会被该标签拆分吗?这会在阅读时产生任何问题吗? 我想我想知道如何分割数组的元素,以便它不会错误地读取它们。

谢谢,祝你有愉快的一天!

1 个答案:

答案 0 :(得分:0)

如果您不希望该文件是人类可读的,则可以使用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));

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

相关问题