Java:ファイルを1バイトずつ読み込んで解釈する例を説明!

java

まえがき

前回の記事では、ファイルを1バイト/1文字ずつ読み書きすることでファイルの中身を解釈しながら処理することができることを説明しました。
今回の記事では、実戦的な応用例として、複雑なCSVフォーマットのファイルを読み込んで解釈して出力する例を紹介します。

サンプルコード

要件

今回の例では、以下のCSVファイルがインプットであると仮定します。
要件は、2項目目のみを抜き出して表示する、とします。

  • 1項目目:連番
  • 2項目目:コメント(半角カンマは全角カンマにエスケープ済み、改行文字を含む)
  • 3項目目:”END”+改行文字(CRLF)固定

項目中に改行文字が含まれるため、単純に1行読んでカンマで分割するという方法では処理が難しいのですが、先頭から1バイト(1文字)ずつ読み込むことで簡単に処理できるようになります。

ソースコード

FileReadWriteMain2.java

処理例

入力ファイル

出力ファイル

あとがき

今回の記事では、ファイルを1行ずつ読み込む代わりに1バイトずつ読み込む方が楽になる実戦的な例を紹介しました。
改行文字が混在するCSVファイルは実務でも存在します。
弊社の書籍でもそうですが、このような実戦的なノウハウを伝えていければと思っています。


株式会社サイゼントでは、即戦力のJavaプログラマーを育てるための書籍「絶対にJavaプログラマーになりたい人へ」をKindleで販売しています。

同じく、Spring Frameworkについてきめ細かく解説した別冊も販売中です。

また、上記の書籍をテキストとして用いたプログラミングスクール「サイゼントアカデミー」も開校しています。
このスクールは、受託開発事業・SES事業である弊社が、新入社員向けの研修で培ったノウハウを詰め込んだものです。

ご興味がある方は、上記画像から個別ページにアクセスしてみてください!

コメント

タイトルとURLをコピーしました