2013-12-13 154 views
0

我有一個應用程序將創建3個數組:2與double值和一個字符串可以包含任何內容,字母數字,逗號,點,用戶可能想要鍵入或意外鍵入的任何內容。 double數組很容易。我發現字符串很棘手。 它可以包含像cake red,blue 1kgpaper-clip的東西,你會得到ideea。寫入/讀取數組到文件

我需要以某種方式存儲這些數組(我猜在一個文件中是最簡單的方式),讀取它們並在用戶需要時將它們重新獲取到應用程序中。

此外,如果他們不會被人類閱讀,只能通過我的應用程序閱讀它們會很好。

這樣做的最好方法是什麼?我的問題是,我怎樣才能讀取他們回到arrays.Its容易寫入一個文件,但然後讓他們回到同一個數組中,我把它們放在...我如何分開數組元素爲它不拆分一個元素在兩個,因爲它有一個space或任何其他元素。

我可以喜歡使3行文本,每個元素分開標籤\t什麼的,當我讀它時,每個元素將通過該標籤拆分?這會在閱讀時產生什麼問題嗎? 我想我想知道如何拆分數組的元素,以便它無法讀取錯誤。

謝謝,祝你有美好的一天!

+0

你可以使用一個特殊字符作爲分隔符 – nachokk

+0

我可能只是將數據存儲在JSON中;或者我可能會使用[H2](http://h2database.com/html/main.html)或[SQLite](https://bitbucket.org/xerial/sqlite-jdbc);我需要看到更多的需求才能真正做出決定。 –

回答

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)); 

你可能會想使用的文件的開頭存儲每個數組的大小。然後將所有值逐個存儲在文件中,不需要分隔符。