Java:ファイルを1バイト/1文字ずつ読み書きする方法を説明!

java

まえがき

ファイルの中身のデータを前から順番に解釈しながら読み込む場合、ファイルを1バイトずつ、もしくは1文字ずつ読み込むと処理がしやすくなることがあります。
この記事では、読み込みと書み込みのJavaのサンプルコードを示します。

1バイトずつ読み込んだ方が汎用性は高いのですが、1バイトずつ読み込む場合はマルチバイト文字も1バイトずつ分割しながら読み込むので、マルチバイト文字の内容を解釈する場合は1文字ずつ読み込んだ方が楽です。
ただし、1文字ずつ読み込む場合は以下のことに注意する必要があります。

  • 文字エンコーディングを指定する必要がある
  • Javaの内部(メモリ)では文字エンコーディングに「UTF-16」を適用して文字列が保持される

サンプルコード

ソースコード

FileReadWriteMain.java

入力ファイル

test.txt(文字エンコーディングは”MS932″(Shift-JIS))

実行時のコンソール表示

出力ファイル

下記の通り、入力ファイル、出力ファイル(1バイトずつ読込時)、出力ファイル(1文字ずつ読込時)の間に差異無し。

あとがき

今回の記事で紹介した内容は、ローカルでファイルの入出力を行うバッチ処理を作りたい時に雛形として役立ちます。
ちょっとした作業の自動化にも使えるので、知っておいて損はないでしょう。


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

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

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

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

コメント

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