Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java入門】ファイルの内容を読み込んで文字列に変換する方法

Javaでは、ファイルの内容を読み取る方法がいくつかあります。そのひとつが、java.util.Scannerクラスを使ってファイルの内容を文字列として読み込む方法です。この記事では、Scannerクラスを利用してテキストファイル全体を1つの文字列として取得する手順を解説します。

Scannerクラスを使った基本の手順

  • Scannerクラスをインスタンス化します。コンストラクタの引数には、読み込みたいファイルのパスを指定します。

  • 空の文字列バッファ(StringBuffer)を作成します。

  • whileループの条件にhasNextLine()を指定し、「次の行が存在する間」繰り返し処理を行うようにします。

  • ループの中では、append()メソッドを使って、ファイルから読み込んだ各行をStringBufferオブジェクトに追加していきます。

  • 最後にtoString()メソッドでバッファの内容をString型に変換すれば完成です。

サンプルファイルの準備

まず、Cドライブ直下に「sample.txt」という名前のファイルを作成し、以下の内容をコピー&ペーストしてください。

Tutorials Pointは、オンラインコンテンツのほうが馴染みやすい読者層へ知識を届けることを目指して歩み始めたEラーニング企業です。Tutorials Pointを利用すれば、自分のペースで、自分の好きな場所で学習できます。

tutorialspoint.comで質の高い学習コンテンツを提供する歩みを経て、私たちはK-12の生徒やIIT/JEE・NEETなどの受験生に向けて、最もパーソナライズされたかたちで「シンプルで簡単な学習」を提供するサブスクリプション制プレミアムサービス「Tutorix」を立ち上げました。

Javaプログラムの例

次のJavaプログラムは、「sample.txt」の内容を読み込んで1つの文字列にまとめ、コンソールに出力します。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class FileToString {
    public static void main(String[] args) throws IOException {
        // 読み込みたいファイルのパスを指定してScannerを生成
        Scanner sc = new Scanner(new File("E://test//sample.txt"));
        String input;
        StringBuffer sb = new StringBuffer();

        // 次の行が存在する間、1行ずつ読み込んでバッファに追加
        while (sc.hasNextLine()) {
            input = sc.nextLine();
            sb.append(" " + input);
        }

        // バッファの内容をStringに変換して表示
        System.out.println("ファイルの内容: " + sb.toString());
    }
}

実行結果

ファイルの内容: Tutorials Pointは、オンラインコンテンツのほうが馴染みやすい読者層へ知識を届けることを目指して歩み始めたEラーニング企業です。 Tutorials Pointを利用すれば、自分のペースで、自分の好きな場所で学習できます。 tutorialspoint.comで質の高い学習コンテンツを提供する歩みを経て、私たちはK-12の生徒やIIT/JEE・NEETなどの受験生に向けて、最もパーソナライズされたかたちで「シンプルで簡単な学習」を提供するサブスクリプション制プレミアムサービス「Tutorix」を立ち上げました。

補足:よりモダンな代替手段

マルチスレッド環境で動作させる予定がない場合は、同期処理のオーバーヘッドがないStringBuilderを使うのが一般的で、パフォーマンス面でも有利です。さらに、Java 11以降ではFiles.readString(Path)メソッドを使えば、わずか1行のコードでファイル全体を文字列として読み込むことも可能です。プロジェクトの要件や使用しているJavaのバージョンに応じて、最適な方法を選びましょう。

  1. JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順

    CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各

  2. Javaでプロパティファイルからデータを読み取る方法を解説

    JavaのPropertiesクラスは、Hashtableクラスのサブクラスであり、永続化可能なプロパティの集合(プロパティセット)を表します。Propertiesオブジェクトはストリームへ保存したり、ストリームから読み込んだりすることができます。また、プロパティリスト内の各キーとそれに対応する値は、どちらも文字列型として扱われます。Javaでは、Propertiesファイルを使うことでアプリケーションの設定情報を外部化し、キーと値(key-value)のペアとして管理できます。Propertiesクラスが提供するload()メソッドを使用すると、.propertiesファイルに記述されたキー