我有一个可以创建3个数组的应用程序:2个带有double
值的数组,另一个带有可包含任何内容的字符串,字母数字,逗号,点,用户可能想要输入的任何内容或意外输入的内容。 double
数组很容易。字符串一我觉得很棘手。
它可以包含cake red,blue 1kg
paper-clip
等内容,您可以获得ideea。
我需要以某种方式存储这些数组(我想在文件中是最简单的方法),阅读它们并在用户想要的时候将它们带回应用程序。
此外,如果它们不是人类可读的,只能通过我的应用程序阅读它们将会很好。
最好的方法是什么?我的问题是,我怎样才能将它们读回到数组中。它很容易写入文件然后将它们放回到同一个数组中我把它们放进去...我怎样才能将数组元素分开以便不拆分一个元素两个因为它有一个space
或任何其他元素。
我喜欢,制作3行文本,每个元素都用标签\t
或其他东西分割,当我读到它时,每个元素都会被该标签拆分吗?这会在阅读时产生任何问题吗?
我想我想知道如何分割数组的元素,以便它不会错误地读取它们。
谢谢,祝你有愉快的一天!
答案 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));
您可能希望使用文件的开头来存储每个数组的大小。然后将所有值逐个存储在文件中,不需要分隔符。