我想打一個包含三個功能如下GUI應用程序:如何通過java將數據寫入文件?
- 添加記錄
- 編輯記錄
- 刪除記錄
記錄包含兩個字段 - 名稱和行業
應用程序有兩個限制
- 您不能使用數據庫來存儲信息。你必須使用一個平面文件。
- 對於每個添加/刪除操作,不應該重寫全部文件。
所以,我的問題是下面提到:
Q1。哪種文件格式會更好? (.xml或.csv或.txt或其他)
Q2。如何在不重寫整個文件的情況下執行添加/刪除操作?
我想打一個包含三個功能如下GUI應用程序:如何通過java將數據寫入文件?
記錄包含兩個字段 - 名稱和行業
應用程序有兩個限制
所以,我的問題是下面提到:
Q1。哪種文件格式會更好? (.xml或.csv或.txt或其他)
Q2。如何在不重寫整個文件的情況下執行添加/刪除操作?
我會去與CSV,壓縮。它既可讀又可編輯外部。
如果CSV是你的選擇,這可以幫助:http://javacsv.sourceforge.net/
你看這個? http://sourceforge.net/projects/flatworm/ 也可以考慮Apache的德比和HSQLDB
另一種解決方案是這樣的http://www.coyotegulch.com/products/jisp/index.html
可以推倒重來,但如果這是一個學術分配新建分配FY即只需要...
鑑於整個文件一定不能被重寫,我會建議使用RandomAccessFile,它允許你只讀和寫你想要的記錄。
對於文件格式,使用固定長度記錄的二進制文件:ex:20個字符的名稱,30個專業文件。 這將允許您使用RandomAccessFile的seek()方法直接訪問數據。
你問題的第二部分是在這裏找到答案:Best Way to Write Bytes in the Middle of a File in Java
至於格式 - 我會盡可能簡單的事情去了。你不需要處理一堆標記處理,就像使用RandomAccessFile一樣,你將直接進入字節位置。一個固定寬度的樣式格式會很好,所以根據記錄號可以計算文件中記錄或字段的起始位置,而不必讀取文件中的所有內容。然後這些字段將被填充到具有空格或其他合適字符的固定寬度。
聞起來像功課給我。 – inkedmn 2009-12-31 08:42:18
http://stackoverflow.com/questions/181408/best-way-to-write-bytes-in-the-middle-of-a-file-in-java的副本? – chburd 2009-12-31 08:48:05