Rainbow Planet

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Java

Javaでファイル読み込みを行う方法+サンプルプログラムもご紹介

投稿日:2020年12月17日 更新日:

<目次>

(1) Javaでファイル読み込み&書き込みを行う方法
 (1-1) 構文
 (1-2) サンプルプログラム

(1) Javaでファイル読み込み&書き込みを行う方法

(1-1) 構文

(構文)

//(1)try-with-resources文でファイル読み込みとBufferedReaderインスタンスの準備
try (FileReader [FileReaderインスタンス名] = new FileReader(new File([ファイルフルパス])); BufferedReader [BufferedReaderインスタンス名] = new BufferedReader(fr))
{
  //(2)読み込んだ行のテキストを格納するための変数を定義
  String [行の変数名];

  //(3)読み取った行の内容がnullでない間は繰り返し処理
  while (([行の変数名] = [BufferedReaderインスタンス名].readLine()) != null) {

      //(4)読み込んだ行に対して行う操作
      //[何かの処理]
  }
} catch (IOException e) {
  System.out.println(e);
}

 

(構文説明)
①try-with-resources文でリソースの指定
1行目の下記箇所は「try-with-resources文」と呼ばれ、( )内で指定したリソース(FileReader、BufferedReader、InputStream、OutputStreamなど)を使う場合に、tryブロックを抜けるタイミングで自動でクローズしてくれます(リソースに対する後処理を自動で行ってくれる)。

try ([リソース])

 

②ファイル読み込みに必要なインスタンス生成
tryの( )内の前半部分ではFileクラスのインスタンスを作り、それを使って更にFileReaderクラスのインスタンスを生成します。

FileReader [FileReaderインスタンス名] = new FileReader(new File([ファイルフルパス]));

Fileクラスは「ファイルそのもの」や「ファイルパス」を表したクラスで、ディレクトリ生成やファイルの探索や削除など様々な用途に使います。
FileReaderクラスは「ファイルの読み込み」を行うためのクラスで、ファイルの内容を文字ストリーム(ファイルアクセスのためのクラスの総称)で読み取る事ができます。

tryの( )内の後半部分ではBufferedReaderクラスのインスタンスを生成しています。

BufferedReader [BufferedReaderインスタンス名] = new BufferedReader(fr)

BufferedReaderは文字ストリームから「バッファリング」と呼ばれる機能を使って効率的にテキストを読み込むためのクラスです。

(参考) ストリームとは?
Javaでは「ストリーム」と呼ばれる抽象概念を通じて、ファイルの読み書きを行います。ストリームは大きく分けて「文字ストリーム」(8ビット単位)と「バイトストリーム」(16ビットUnicode文字も扱える)に分かれます。

③ファイルの内容を行単位で順次読み込み
while文の中の条件に「読み込んだ行がnullでない」と指定しているので、nullの行(空行)が来るまで行を繰り返し読ませる処理になります。

while (([行の変数名] = [BufferedReaderインスタンス名].readLine()) != null) {

目次にもどる

(1-2) サンプルプログラム

上記のプログラムにmainメソッドなども付けて、実行可能にしたものが下記サンプルになります。

(サンプルプログラム)

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class ReadFileTest {
  public static void main(String args[]) {
 
   final String filepath = "[ファイルパス]/[ファイル名]";
   
   //(1)try-with-resources文でファイル読み込みとBufferedReaderインスタンスの準備
   try (FileReader fr = new FileReader(new File(filepath)); BufferedReader br = new BufferedReader(fr))
   {
    //(2)読み込んだ行のテキストを格納するための変数を定義
    String word;
    //(3)読み取った行の内容がnullでない間は繰り返し処理
    while ((word = br.readLine()) != null) {
      //(4)読み込んだ行に対して、内容をコンソール表示
      System.out.println(word);
    }
   } catch (IOException e) {
    //(5)例外処理(パスが存在しないケースなど)
    System.out.println(e);
   }
  }
}

(図121)実行結果

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Javaのアノテーションを自作する方法をご紹介(サンプルプログラム付き)

(1) 自作アノテーションの作成~使用の手順  (1-1) アノテーションの宣言  (1-2) メタアノテーションの追加(任意)  (1-3) アノテーションを実際に使う(注釈の付与)  (1-4) …

JSPやServletの画面をスマホ表示に対応させる方法~メディアクエリの導入~

<目次> (1) JSPやServletの画面をスマホ表示に対応させる方法 (2) 設定手順  (2-1) Step1:ビューポートの設定  (2-2) Step2:メディアクエリを記述したcssファ …

Javaのポリモフィズムのメリットや例をご紹介(サンプルプログラムあり)

<目次> (1) Javaのポリモフィズムのメリットや例をご紹介  (1-1) ポリモフィズムとは?  (1-2) サンプルプログラム  (1-3) ポリモフィズムのメリット  (1-4) 参考:ポリ …

Javaのabstractとは?抽象クラスの概要やサンプルPGをご紹介

<目次> (1) Javaのabstractとは?抽象クラスの概要やサンプルPGをご紹介  (1-1) 抽象クラス(abstract)とは  (1-2) 抽象クラスの目的や用途  (1-3) 抽象クラ …

Tomcatの起動時のエラー「アドレスは既に使用中です」や「必要な幾つかのポートがすでに使用中です」の対処方法

<目次> (1) Tomcatの起動時のエラー「アドレスは既に使用中です」や「必要な幾つかのポートがすでに使用中です」の対処方法  (1-1) 発生状況  (1-2) 原因  (1-3) 対処方法 ( …

  • English (United States)
  • 日本語
Top