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

  1. Java でファイルを作成するには PrintWriter を使う
  2. Java でファイルを作成するための Files
  3. Java でファイルを作成するための BufferedWriter
  4. Java でファイルを作成する FileWriter

このチュートリアルでは、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.util.*;
import java.nio.file.*;
import java.nio.charset.*;

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

  • Java でフォルダの全ファイルを読み込む方法
  • Java でファイルをバイト配列に変換する方法
  • comments powered by Disqus