Javaでファイルとストリームを扱う方法


まず、ファイルの読み書きには、Javaの標準ライブラリであるjava.ioパッケージを使用します。以下に、ファイルを読み込む方法と書き込む方法の例を示します。

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileExample {
    public static void main(String[] args) {
        // ファイルの読み込み
        try {
            File file = new File("input.txt");
            FileReader reader = new FileReader(file);
            int character;
            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
// ファイルへの書き込み
        try {
            File file = new File("output.txt");
            FileWriter writer = new FileWriter(file);
            writer.write("Hello, World!");
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上記の例では、FileReaderクラスを使用してファイルを読み込み、FileWriterクラスを使用してファイルに書き込んでいます。また、try-catch文を使用して例外処理を行っています。

次に、ストリーム処理について説明します。Java 8以降では、ストリームAPIが導入され、コレクションや配列の要素を効率的に処理するための便利な機能が提供されています。以下に、ストリーム処理の基本的な使い方の例を示します。

import java.util.Arrays;
import java.util.List;
public class StreamExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        // フィルタリングとマッピング
        numbers.stream()
                .filter(n -> n % 2 == 0)
                .map(n -> n * 2)
                .forEach(System.out::println);
        // リストの要素を合計する
        int sum = numbers.stream()
                .reduce(0, Integer::sum);
        System.out.println("合計: " + sum);
    }
}

上記の例では、filterメソッドを使用して偶数の要素をフィルタリングし、mapメソッドを使用して要素を2倍にマッピングしています。また、forEachメソッドを使用して結果を出力しています。さらに、reduceメソッドを使用してリストの要素を合計しています。

これらの例は、ファイルとストリームの基本的な操作を示しています。詳細な処理や応用的なテクニックについては、Javaの公式ドキュメントや他のリソースを参考にしてください。