Javaでテキストファイルを操作!初心者でもできる7つの方法

初心者が学ぶJavaでのテキストファイル読み込み方法とサンプルコードJava
この記事は約33分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

初めましての方も、Javaプログラミングをこれから始めようと思っている方も、心より歓迎します。

この記事では、Javaでテキストファイルを操作する基本的な方法を徹底的に解説します。

まずは、Javaとテキストファイルについての基本知識から始め、その後具体的な操作方法について深く探ります。

一緒にJavaプログラミングの世界を探究しましょう。

●Javaとは

Javaは、多くの企業や組織で幅広く利用されているプログラム言語の一つです。

その特徴は、プラットフォーム非依存である点や、オブジェクト指向プログラミングが行いやすいという点が挙げられます。

また、セキュリティが高く、ネットワークでのアプリケーション開発にも適しているため、ウェブアプリケーションや企業向けのシステム開発にも頻繁に利用されます。

ここではJavaとはどのような言語なのか、その特徴と共に解説していきます。

○プログラミング言語としての特徴

Javaは、その汎用性と安定性から多くの開発者に支持されています。

Javaは、いわゆる「書いて一度で、どこでも動く」を実現した言語として知られています。

これは、Javaが仮想マシン(JVM)上で動作するため、異なるハードウェアやオペレーティングシステム上でも、同じJavaコードが実行できるという特徴があるからです。

また、Javaはオブジェクト指向プログラム言語の一つであり、クラスとオブジェクトを利用して効率的かつ組織的にコードを書くことが可能です。

オブジェクト指向プログラミングの概念を理解することで、より高度なプログラム開発が行えます。

さらに、Javaはメモリ管理やガーベージコレクションといった機能が自動で行われるため、プログラマーはこれらの管理から解放され、コードのロジックに集中できます。

これによって、エラーの少ない安定したプログラム開発が可能となっています。

○テキストファイルとは

テキストファイルは、文字データのみを含むファイルの一種で、拡張子は.txtとなることが一般的です。

テキストファイルは、ワードプロセッサやスプレッドシートのような専用のアプリケーションがなくても、テキストエディタで開くことができます。

また、テキストファイルは人間が読むことができる形式でデータが格納されているため、直接開いて内容を確認することができます。

●Javaでテキストファイルを読み込む基本

Javaでテキストファイルを読み込むという作業は、プログラミングの初歩的なスキルの一つとして非常に重要です。

この作業をマスターすることで、データ分析やファイル管理といったさまざまなアプリケーションの開発がスムーズに行えるようになります。

ここでは、Javaでテキストファイルを読み込む基本的な手順と注意点について詳細に説明します。

さらに、サンプルコードも提供して、実際のコーディングプロセスをご紹介いたします。

○準備するもの

テキストファイルを読み込む前に、まずはいくつかの準備が必要です。

下記のアイテムを準備しておきましょう。

□Java開発環境

Javaを実行するための環境が必要です。

JDK(Java Development Kit)をインストールして、環境をセットアップしてください。

□テキストエディタ

コードを書くためのテキストエディタが必要です。

エディタとしては、EclipseやIntelliJ IDEAなどのIDEを利用することが一般的です。

□テキストファイル

読み込むテキストファイルも準備しておきます。

テキストファイルは任意の内容で作成可能ですが、初めての方は簡単な内容から始めることをお勧めします。

○基本的な手順

Javaでテキストファイルを読み込む際の基本的な手順は次のようになります。

  1. ファイルオブジェクトの作成:まず、読み込みたいテキストファイルを指定して、Fileクラスのインスタンスを作成します。
  2. ファイルの読み込みストリームを開く:Fileクラスのインスタンスを利用して、読み込みストリームを開きます。
  3. データの読み込み:読み込みストリームからデータを読み込みます。
  4. データの利用:読み込んだデータを利用して、必要な処理を行います。
  5. ストリームのクローズ:データの読み込みが終わったら、ストリームをクローズします。

サンプルコードとその説明を紹介します。

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

public class TextFileReading {
    public static void main(String[] args) {
        // ファイルオブジェクトの作成
        File file = new File("path/to/your/textfile.txt");

        try {
            // ファイルの読み込みストリームを開く
            Scanner scanner = new Scanner(file);

            // データの読み込み
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                // データの利用
                System.out.println(line);
            }

            // ストリームのクローズ
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

このコードでは、まずFileクラスのインスタンスを作成し、指定したテキストファイルへのパスを指定しています。

次に、Scannerクラスを利用してファイルの読み込みストリームを開き、hasNextLineメソッドとnextLineメソッドを使ってファイルのデータを行単位で読み込みます。

そして、読み込んだデータをコンソールに出力します。

最後に、scanner.closeメソッドを使ってストリームをクローズしています。

なお、ファイルが見つからない場合にはFileNotFoundExceptionがスローされ、それがcatchブロックでキャッチされてエラーメッセージが出力されます。

●実践!Javaでテキストファイルを読み込む7つの方法

Java言語は多くの初心者プログラマーにとって初めて触れるプログラミング言語の一つであり、その多機能性と拡張性から多くの場面で利用されています。

今回はJavaを使ってテキストファイルを読み込む基本的な方法をいくつかご紹介します。

具体的な手法とその詳細な実行方法を順を追って解説いたします。

○サンプルコード1:BufferedReaderを使った読み込み

まず最初に、BufferedReaderクラスを利用したテキストファイルの読み込み方法について解説いたします。

BufferedReaderクラスは、文字の入力ストリームからテキストを効率的に読み取ることができるクラスであり、大量のデータを高速に読み込む際に非常に便利です。

まず、必要なライブラリをインポートします。

次に、ファイルパスを指定してFileクラスのインスタンスを生成します。

そして、そのインスタンスを利用してFileReaderクラスのインスタンスを作成し、最終的にBufferedReaderクラスのインスタンスを作成します。

この時点でテキストファイルの読み込み準備が整います。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class BufferedReaderExample {
    public static void main(String[] args) {
        File file = new File("path/to/your/textfile.txt"); // ファイルパスを指定
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line); // 一行ずつ画面に表示
            }
        } catch (IOException e) {
            e.printStackTrace(); // エラーハンドリング
        }
    }
}

このサンプルコードでは、まず最初に必要なライブラリをインポートしています。

次に「path/to/your/textfile.txt」というパスで指定したテキストファイルを読み込む準備を進め、BufferedReaderクラスのインスタンスを作成しています。

そして、whileループを使ってファイルの終わりまで一行ずつ読み取り、その行をコンソールに表示します。

もし何らかの入出力例外が発生した場合には、catchブロック内でその例外をキャッチしてエラーメッセージを表示します。

次に、このコードを実行したときの期待される出力を説明します。

このコードを実行すると、指定したテキストファイルの内容がコンソールに一行ずつ表示されます。

もしファイルが見つからないか、他の入出力関連の問題が発生した場合には、エラーメッセージがコンソールに表示されます。

このBufferedReaderを利用した読み込み方法は、テキストファイルの読み込みだけでなく、大量のデータを効率的に処理する際にも利用できます。

また、この方法は初心者でも容易に取り組める内容であるため、Javaプログラミングの学習初期段階で試す価値のある方法です。

○サンプルコード2:FileReaderを使った読み込み

Javaのテキストファイルの読み込みは様々な方法が存在しますが、今回はFileReaderを使った読み込み方法を詳細に説明します。

この方法はシンプルでありながら非常に効果的です。

初心者の方でもステップバイステップで進められるよう、具体的なサンプルコードとそれに付随する詳細な説明をご提供します。

まずは、FileReaderクラスをインポートし、テキストファイルを読み込むプログラムを作成します。

下記のコードはJavaでテキストファイルを読み込む基本的なサンプルコードです。

import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("path/to/your/textfile.txt");
            int i;
            while ((i = fr.read()) != -1) {
                System.out.print((char) i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fr != null) {
                    fr.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上記のコードを説明すると、最初にjava.io.FileReaderパッケージをインポートします。

次にMainクラスとmainメソッドを定義します。

mainメソッド内でFileReaderオブジェクトを新しく作成し、読み込むテキストファイルのパスを指定します。

このオブジェクトを使ってファイルを読み込む際には、readメソッドを用いて1文字ずつ読み取り、コンソールに表示します。

読み取る文字がなくなるとreadメソッドは-1を返すので、それを検知して読み込みを終了します。

そして、エラーが発生した場合にはcatchブロックでそのエラーを捕捉し、エラーメッセージを表示します。

最後にfinallyブロックを用いて、FileReaderオブジェクトを閉じます。

このコードの実行結果は、指定されたテキストファイルの内容がコンソールに表示されるというものです。

このサンプルコードは初心者の方でも簡単にテキストファイルを読み込むことができ、Javaプログラミングの基本を学ぶ上で非常に有用です。

また、例外処理を行うことで、ファイルが見つからない場合や他のIOエラーが発生した場合にも適切に対応することができます。

○サンプルコード3:Filesクラスを利用した読み込み

FilesクラスはJavaのnioパッケージに属しており、テキストファイルの読み込みなど、ファイル操作を効率的に行うことができます。

今回はFilesクラスを利用してテキストファイルを読み込む方法を、初心者でも理解できるように分かりやすく説明します。

コードの解説とともに、その実行結果も具体的に説明しますので、Javaプログラミングのスキル向上に役立ててください。

まず初めに、Filesクラスを利用したテキストファイル読み込みの基本的なコードをご紹介します。

import java.nio.file.*;

public class ReadFileWithFilesClass {
    public static void main(String[] args) {
        Path path = Paths.get("sample.txt");

        try {
            List<String> lines = Files.readAllLines(path);
            for(String line : lines){
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上記のコードは、”sample.txt”という名前のテキストファイルを読み込むプログラムです。

コードは次の流れで進行します。

  1. 最初にjava.nio.fileパッケージをインポートします。
  2. ReadFileWithFilesClassというクラスを定義し、mainメソッドを宣言します。
  3. Paths.getメソッドを利用して、読み込むテキストファイルのパスを取得します。
  4. Files.readAllLinesメソッドを利用して、テキストファイルの全ての行を読み込みます。このメソッドは行をStringのリストとして返します。
  5. 例外処理は、ファイルの読み込み中に何らかのエラーが発生した場合にIOExceptionをキャッチしてエラー内容を出力します。

そして次に、このコードの実行結果について説明します。

このコードを実行すると、”sample.txt”というファイルの内容がコンソールに行ごとに出力されます。

テキストファイル内の各行はリストの各要素として格納され、for-eachループを用いてそれぞれの行がコンソールに印刷されます。

このコードはJavaでテキストファイルを読み込む際の基本的な例として非常に有用です。

初心者の方でもこのサンプルコードを基に、Javaプログラムでテキストファイルを読み込む練習が行えるでしょう。

このコードの実行前には、適切な場所に”sample.txt”というテキストファイルを作成し、いくつかのテキスト行を追加しておくことが必要です。

そしてプログラムを実行すると、テキストファイルの内容が正確にコンソールに出力されることを確認できます。

○サンプルコード4:Scannerクラスを利用した読み込み

Javaの中で、テキストファイルを読み込む方法は多種多様に存在します。

今回のテーマであるScannerクラスを用いた読み込みは、特に初心者には使いやすく、理解しやすい方法として知られています。

テキストファイルからデータを読み込む際、Scannerクラスはその役割をしっかりと果たしてくれるでしょう。

では、実際のサンプルコードをみながら、詳しく解説していきましょう。

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

public class TextFileScanner {
    public static void main(String[] args) {
        try {
            File file = new File("sample.txt"); // テキストファイルのパスを指定
            Scanner scanner = new Scanner(file); // Scannerクラスのインスタンスを生成

            while (scanner.hasNextLine()) { // ファイルの最後の行まで読み込みを継続
                String line = scanner.nextLine(); // 1行ずつデータを読み込む
                System.out.println(line); // 読み込んだデータを出力
            }

            scanner.close(); // Scannerを閉じる

        } catch (Exception e) {
            e.printStackTrace(); // エラーが発生した場合、エラー内容を出力
        }
    }
}

このサンプルコードは、”sample.txt”という名前のテキストファイルを読み込むJavaのプログラムです。

コード内部で、Scannerクラスを使用してテキストファイルからデータを一行ずつ読み取り、それをコンソールに出力しています。

読み込みの主要な流れは次の通りです。

  1. Fileクラスを使用して読み込むテキストファイルを指定します。
  2. そのファイルを引数にして、Scannerクラスのインスタンスを生成します。
  3. hasNextLineメソッドを用いてファイルの最後の行までの読み込みをループで繰り返します。
  4. nextLineメソッドでファイルから1行ずつ読み取り、その内容をコンソールに出力します。

このコードを実行すると、”sample.txt”に書かれた内容がコンソール上に表示されます。

もし”sample.txt”という名前のファイルが存在しない場合や、読み込み時に何らかのエラーが発生した場合は、例外がスローされcatchブロックの中のe.printStackTrace();によってエラー内容が出力される構造となっています。

○サンプルコード5:FileInputStreamを利用した読み込み

Javaプログラムを実装する際にテキストファイルからデータを読み取る方法はいくつかありますが、今回は「FileInputStream」クラスを利用した方法についてご紹介します。

この方法は、バイトストリームを利用してファイルのデータをバイト単位で読み込むため、テキストファイルだけでなく、バイナリファイルの読み込みにも利用できます。

まずはじめに、Javaで「FileInputStream」を利用したテキストファイルの読み込み方法を解説します。

下記のサンプルコードは、FileInputStreamクラスを利用してテキストファイルを読み込む基本的なコード例となります。

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamExample {
    public static void main(String[] args) {
        FileInputStream fileInputStream = null;

        try {
            fileInputStream = new FileInputStream("path/to/your/file.txt");
            int i;
            while ((i = fileInputStream.read()) != -1) {
                System.out.print((char) i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileInputStream != null) {
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

このコードは次のような処理を行っています。

まず、FileInputStreamのインスタンスを作成し、読み込むテキストファイルのパスを指定します。

次に、readメソッドを使ってファイルから1バイトずつデータを読み込み、それが-1(ファイルの終わりを示す値)になるまで読み込みを続けます。

読み込んだデータをchar型にキャストしてコンソールに出力します。そして最後に、ファイルをクローズします。

例外が発生した場合は、スタックトレースを出力します。

このサンプルコードを実行すると、指定したテキストファイルの内容がコンソールに出力されます。

ただし、このコードはバイト単位でデータを読み込むため、日本語などのマルチバイト文字が含まれるテキストファイルを読み込む場合には文字化けする可能性があります。

その問題を解消するためには、InputStreamReaderクラスを利用して文字コードを指定することが一般的な解決策となります。

また、このコードは例外処理も含めているため、ファイルが見つからない場合や読み込み中にエラーが発生した場合にも適切に対応することができます。

そして、finallyブロック内でリソースの解放を行っているため、プログラムが正常に終了することを保証しています。

○サンプルコード6:NIOを利用した読み込み

Javaでテキストファイルを読み込む方法の一つとして、NIO(New Input/Output)を利用した読み込みがあります。

NIOはJava 4から導入され、非ブロッキングI/O操作を提供するAPIとして知られています。

ここでは、そのNIOを利用してテキストファイルを読み込む具体的なサンプルコードと、その説明を行います。

続けて実行後のコードと、実行結果についても詳細に解説します。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class NIOFileReadExample {
    public static void main(String[] args) {
        try {
            Path path = Paths.get("example.txt");
            byte[] bytes = Files.readAllBytes(path);
            String content = new String(bytes);
            System.out.println(content);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

このコードは、NIOのFilesクラスとPathインターフェイスを利用してテキストファイルを読み込むものとなります。

まず、Paths.getメソッドを使用してPathインスタンスを取得し、それをFiles.readAllBytesメソッドに渡してファイルの全てのバイトデータを読み込んでいます。

その後、バイトデータを文字列に変換し、コンソールに出力しています。

さて、このコードを実行すると、まず”example.txt”という名前のテキストファイルを探します。

そのテキストファイル内のデータを全てバイトデータとして読み取ります。

この読み取ったデータを新しい文字列として構築し、コンソールにその内容を表示します。

このサンプルコードの特徴は、バイトデータを直接読み取り、それを文字列に変換している点にあります。

これによって、大きなテキストファイルでも高速に読み込むことが可能となります。

また、例外処理も行っており、何らかの問題が発生した場合にはエラーのスタックトレースがコンソールに出力されます。

こちらが実行後のコードの一部です。

例として、”example.txt”というテキストファイルに”Java NIOファイル読み込み例”という文字列が書かれていた場合、コンソールの出力は次のようになります。

Java NIOファイル読み込み例

この実行結果から、コードが無事にテキストファイルを読み込み、その内容を正確にコンソールに表示できたことが確認できます。

○サンプルコード7:Streamを利用した読み込み

Javaプログラミングにおけるテキストファイルの読み込みは、多くの方法がありますが、Streamを利用した方法は特に効率的かつ現代的なアプローチと言えます。

Streamを利用することで、非常に柔軟かつ効率的なコーディングが可能となります。

ここでは、Streamを利用したテキストファイル読み込みのサンプルコードとその詳細な説明を提供いたします。

コードの理解を深めるため、実行後の結果も説明いたします。

まず、基本的なサンプルコードをご覧いただきましょう。

このサンプルコードは、Streamを使ってテキストファイルからデータを読み込むJavaのプログラム例です。

import java.nio.file.*;
import java.io.IOException;
import java.util.stream.Stream;

public class StreamFileRead {
    public static void main(String[] args) {
        Path path = Paths.get("example.txt");

        try (Stream<String> lines = Files.lines(path)) {
            lines.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上記のコードでは、まずjava.nio.fileおよびjava.iojava.util.streamパッケージをインポートしています。

次に、StreamFileReadというクラスを定義し、mainメソッド内でPaths.get("example.txt")を用いて読み込むテキストファイルのパスを指定しています。

次に、Files.lines(path)メソッドを使用してファイルから行を読み取るStreamを取得しています。

このメソッドはIOExceptionをスローする可能性があるため、try-with-resources構文を使ってリソースの解放を管理しています。

そして、lines.forEach(System.out::println)を使用して、読み取った各行をコンソールに表示しています。

このプログラムを実行すると、”example.txt”という名前のテキストファイルから読み取った各行がコンソールに表示されます。

もし何らかの理由でファイルの読み取りに失敗すると、捕捉されたIOExceptionがスタックトレースとしてコンソールに表示されます。

このコード例は、JavaのStreamを利用してテキストファイルを読み込む一例です。

Streamを利用すると、データの流れを効率的に管理でき、コードも簡潔になります。

さらに、JavaのStream APIは他の操作と組み合わせることで、さらに高度なデータ処理が可能となります。

●注意点と対処法

Javaでテキストファイルを操作する際には、注意点がいくつかあります。

ここでは、それぞれの注意点とそれに対応する対処法を細かく説明していきます。

○例外処理について

Javaでテキストファイルを読み込む際には、いくつかの例外が発生する可能性があります。

それらの例外処理を適切に行うことで、プログラムの安定性を高めることができます。

例えば、FileNotFoundExceptionは、指定したファイルが見つからない場合に発生します。

このような例外が発生した際には、次のような対処法が考えられます。

try {
    // ファイル読み込みのコード
} catch (FileNotFoundException e) {
    // ファイルが見つからない場合の対処
    System.out.println("ファイルが見つかりません: " + e.getMessage());
} catch (IOException e) {
    // その他の入出力例外の対処
    System.out.println("入出力エラーが発生しました: " + e.getMessage());
}

このコードは、tryブロック内で発生するかもしれない例外を捕捉し、適切なメッセージを表示します。

IOExceptionは、入出力関連の例外のスーパークラスであるため、その他の入出力関連の例外もここで捕捉します。

○文字コードの問題と対処法

テキストファイルを読み込む際には、文字コードの違いが原因で読み込めない場合があります。

Javaでは、文字コードを指定してファイルを読み込むことが可能です。

次のサンプルコードは、UTF-8でエンコードされたテキストファイルを読み込む例です。

try {
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("path/to/your/file.txt"), "UTF-8"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (FileNotFoundException e) {
    System.out.println("ファイルが見つかりません: " + e.getMessage());
} catch (UnsupportedEncodingException e) {
    System.out.println("サポートされていない文字コードです: " + e.getMessage());
} catch (IOException e) {
    System.out.println("入出力エラーが発生しました: " + e.getMessage());
}

このコードでは、InputStreamReaderのコンストラクタで文字コードを指定しています。

このようにして、異なる文字コードのテキストファイルでも問題なく読み込むことが可能です。

この度はご指定いただきました条件に基づいて記事の執筆を進めます。ご確認いただき、不明点がありましたら質問させていただきます。以下の通り進行いたします。

●応用例とサンプルコード

○テキストファイルのデータを活用するプログラム

Javaでテキストファイルのデータを活用するプログラムを作成する場合、データ解析やデータの可視化など多岐にわたる活用法があります。

ここでは、テキストファイルのデータを読み込んで、特定の情報を抽出するシンプルなプログラムを作成してみましょう。

下記のサンプルコードは、テキストファイルから行を読み込み、特定のキーワードが含まれる行だけを表示するプログラムです。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class TextFileDataUtilization {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                if (line.contains("特定のキーワード")) {
                    System.out.println(line);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

このサンプルコードでは、BufferedReaderとFileReaderクラスを用いてテキストファイル(”data.txt”)を読み込んでいます。

そして、whileループを利用してテキストファイルの各行を読み込み、特定のキーワードが含まれる行だけをコンソールに表示します。

例外が発生した場合には、catchブロックでその例外をキャッチし、スタックトレースを表示します。

○テキストファイルのデータ分析

次に、テキストファイルのデータ分析について解説します。

テキストファイルのデータ分析では、データのパターンを分析したり、特定の情報を抽出したりするプログラムを作成します。

下記のサンプルコードは、テキストファイルのデータを読み込み、各行の文字数をカウントし、それを表示するプログラムです。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class TextFileDataAnalysis {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println("行: " + line + " 文字数: " + line.length());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

このサンプルコードでは、同様にBufferedReaderとFileReaderクラスを利用してテキストファイルを読み込んでいます。

そして、読み込んだ各行の文字数をカウントし、それと共に行の内容をコンソールに表示します。

こちらも例外処理が含まれており、例外が発生した場合にはその例外をキャッチしてエラーメッセージを表示します。

●カスタマイズ方法

Javaでテキストファイルを読み込んだ後は、さまざまなカスタマイズ方法があります。

今回は、フォーマットの変更とバッチ処理に焦点を当て、初心者でも理解できるように具体的な方法を詳しく解説します。

○テキストファイルのフォーマット変更

テキストファイルのフォーマットを変更するには、次の手順とサンプルコードを参照してください。

まずは、JavaのFileクラスとBufferedReaderクラス、BufferedWriterクラスを使用します。

下記のコードは、テキストファイルを読み込み、一行ずつ読んで、フォーマットを変更して新しいテキストファイルに書き込むものです。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FormatChanger {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("input.txt"));
             BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {

            String line;
            while ((line = br.readLine()) != null) {
                String formattedLine = line.replace(",", ";");
                bw.write(formattedLine);
                bw.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上記のサンプルコードでは、カンマをセミコロンに置き換えることでフォーマットを変更しています。

コードを実行すると、”input.txt”の内容が変更され、”output.txt”として保存されます。

○テキストファイルのバッチ処理

バッチ処理とは、複数のテキストファイルを一括で処理する方法です。

この方法もJavaで実現できます。

下記のサンプルコードは、特定のディレクトリ内のすべてのテキストファイルを読み込み、それぞれのファイルに対して特定の処理を行うプログラムです。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class BatchProcessor {
    public static void main(String[] args) {
        File folder = new File("directoryPath");
        File[] listOfFiles = folder.listFiles();

        if (listOfFiles != null) {
            for (File file : listOfFiles) {
                if (file.isFile() && file.getName().endsWith(".txt")) {
                    try {
                        String content = new String(Files.readAllBytes(Paths.get(file.getAbsolutePath())));
                        String updatedContent = content.replace("oldString", "newString");
                        Files.write(Paths.get(file.getAbsolutePath()), updatedContent.getBytes());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

ここでのコードは、指定されたディレクトリのすべてのテキストファイルを検索し、それぞれのファイル内の”oldString”という文字列を”newString”に置き換えます。

コードを実行すると、ディレクトリ内の各テキストファイルが更新されます。

まとめ

Javaでテキストファイルを読み込むプロセスは初心者でも取り組める内容であり、この記事を通して7つの異なる方法を解説しました。

これらの方法はそれぞれ異なるクラスやメソッドを使用し、特定の状況や目的に最適化されています。

BufferedReaderやFileReaderなどのクラスを使用してテキストファイルからデータを効率的に読み取る方法を学ぶことができました。

また、FilesクラスやScannerクラスを使う方法も詳しく説明しました。

今回学んだ知識を活かして、さまざまなJavaプログラムを作成してみてください。

そして、テキストファイルのデータを効果的に活用する方法をさらに探求してみてください。

この記事がJavaプログラミングの世界への第一歩として役立つことを願っています。