0

次の 3 つの機能を含む GUI アプリケーションを作成したいと考えています。

  • レコードを追加する
  • レコードを編集する
  • レコードを削除する

レコードには、名前と職業の 2 つのフィールドが含まれます

申請には2つの制限があります

  • データベースを使用して情報を保存することはできません。フラットファイルを使用する必要があります。
  • 追加/削除操作ごとにファイル全体を再書き込みしないでください。

したがって、私の質問は以下のとおりです。

Q1. どのファイル形式が良いでしょうか? (.xml または .csv または .txt またはその他)

Q2. ファイル全体を書き直さずに追加/削除操作を実行するにはどうすればよいでしょうか?

4

3 に答える 3

2

あなたの質問の2番目の部分はここで答えられます: Javaでファイルの途中にバイトを書き込む最良の方法

フォーマットに関しては、できるだけシンプルなものを使用します。RandomAccessFile を使用すると、バイト位置に直接移動するため、一連のマークアップ処理に対処する必要はありません。ファイル内のすべてを読み取ることなく、レコード番号に基づいてファイル内のレコードまたはフィールドの開始位置を計算できるように、固定幅スタイルの形式が適しています。フィールドは、スペースまたはその他の適切な文字で固定幅にパディングされます。

于 2009-12-31T08:46:10.693 に答える
0

私は CSV を使用し、圧縮します。読み取り可能であり、外部から編集可能です。

CSV を選択した場合は、http: //javacsv.sourceforge.net/が役に立ちます。

これを見ましたか?http://sourceforge.net/projects/flatworm/ Apache Derbi と HSQLDB も検討してください

別の解決策はこれですhttp://www.coyotegulch.com/products/jisp/index.html

車輪を再発明することはできますが、それが必要になるのは、これが学術的な課題である場合のみです...

于 2009-12-31T08:45:42.550 に答える
0

ファイル全体を書き換えてはならないことを考えると、必要なレコードのみを読み書きできるRandomAccessFileを使用することをお勧めします。

ファイル形式については、レコードに固定長を使用するバイナリ ファイル: 例: 20 文字の名前、30 文字の職業。これにより、RandomAccessFile の seek() メソッドを使用してデータに直接アクセスできます。

于 2009-12-31T08:45:54.733 に答える