Java でファイルを作成してデータを書き込む方法

Hassan Saeed 2023年10月12日
  1. Java でファイルを作成するには PrintWriter を使用する
  2. Java でファイルを作成するための Files
  3. Java でファイルを作成するための BufferedWriter
  4. Java でファイルを作成する FileWriter
Java でファイルを作成してデータを書き込む方法

このチュートリアルでは、Java でテキストファイルを作成し、そこにデータを書き込む方法について説明します。

Java にはファイルを作成するための複数のメソッドがあります。覚えておくべきことは、try-catch ブロックは、任意の IO 例外が優雅に処理されるように、ほとんどすべてのファイル作成メソッドに必要であるということです。これを使用するのを忘れないようにしてください。

Java でファイルを作成するには PrintWriter を使用する

Java の PrintWriter を使用すると、指定したエンコーディングで新しいファイルを作成することができます。以下に例を示します。

import java.io.*;

public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    String encoding = "UTF-8";
    try {
      PrintWriter writer = new PrintWriter(fileName, encoding);
      writer.println("The first line");
      writer.println("The second line");
      writer.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

Java でファイルを作成するための Files

java.nio.file を使用してファイルを作成し、そこにデータを書き込むこともできます。以下の例は、このアプローチを示しています。

import java.io.*;
import java.nio.charset.*;
import java.nio.file.*;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    try {
      List<String> lines = Arrays.asList("The first line", "The second line");
      Path file = Paths.get(fileName);
      Files.write(file, lines, StandardCharsets.UTF_8);
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

この例では、ArrayList の各要素が出力ファイルの改行に書き込まれるように、ArrayList のデータをファイルに書き込んでいる。出力ファイルは以下のようになります。

> The first line
> The second line

Java でファイルを作成するための BufferedWriter

以下の例では、BufferedWriter を用いてファイルを作成して書き込む様子を示しています。

import java.io.*;
import java.nio.charset.*;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Charset utf8 = StandardCharsets.UTF_8;
    List<String> list = Arrays.asList("This is the first line", "This is the second line");
    String content = "This is my content";

    try {
      // File name with path
      String fileName = "my-file.txt";
      File myFile = new File(fileName);
      FileOutputStream fos = new FileOutputStream(myFile);
      OutputStreamWriter osw = new OutputStreamWriter(fos);
      Writer writer = new BufferedWriter(osw);
      // Write data using a String variable
      writer.write(content + "\n");

      // Write data from an ArrayList
      for (String s : list) {
        writer.write(s + "\n");
      }

    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

出力:

> This is my content
> This is the first line
> This is the second line

Java でファイルを作成する FileWriter

Java で新しいファイルを作成してそれに書き込むもう一つの一般的な方法は、FileWriter を使用することです。

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try {
      FileWriter myWriter = new FileWriter("my-file.txt");
      myWriter.write("We can also create a file and write to it using FileWriter");
      myWriter.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

出力:

> We can also create a file and write to it using FileWriter

関連記事 - Java File