0

たくさんの教科書をリストしたテキスト ファイルがあります (8 MB の .txt ファイルです!!) ファイルを読み取り、設定したデータベースに情報を書き込むスクリプトを作成することになっています。各書籍は、データベース内の行です。テキストファイルは次のようになります。

Book_Title: ここにいくつかのタイトル
ISBN: いくつかの ISBN


................................
Book_Title: タイトル
(など...)

各ブックはピリオドで区切られており、「キー: 値」のペアは、コロンの前のデータベースの列名とコロンの後に格納する値です。情報を読み取るにはどうすればよいですか?スキャナーを使用してみましたが、区切り文字が「:」であると言いましたが、「Updated_On: ... at 10:30:28」というフィールドがあります..他の提案はありますか?

4

1 に答える 1

2

次の擬似コードが十分に単純になることを願っています。8Mbはそれほど多くないので、すべてをメモリ内で実行できます。

  1. ファイルを文字列に読み込む
  2. あなたの場合は「.........................」であるレコードセパレーターで文字列を分割します。
  3. レコードの配列を反復処理し、「\ n」のレコード配列の各要素を分割します。これにより、レコード配列の各要素の名前と値のペアの連結配列が生成されます。
  4. 連結された名前/値のペアの配列を反復処理し、各「:」を分割します。これにより、名前と値の分離された配列が生成されます。

O(3N)のようにメモリを大量に消費しますが、数ギガのファイルの場合はかなりうまく機能するはずです。

ファイルを文字列に読み込むには、Apache Commons、FileUtilsを使用できます。 FileUtils JavaDoc

于 2012-12-04T20:06:29.903 に答える