Java のテキストファイルにテキストを追加する
-
Java の
FileOutputStream
クラスを使用してテキストファイルにテキストを追加する -
Java の
FileWriter
クラスを使用してテキストファイルにテキストを追加する -
Java の
BufferedWriter
クラスを使用してテキストファイルにテキストを追加する -
Java の
Files
クラスを使用してテキストファイルにテキストを追加する - Java のテキストファイルにテキストを追加する
このチュートリアルでは、Java の既存のテキストファイルにテキストを追加する方法を紹介します。また、ガイドとしていくつかのサンプルコードをリストしました。
読み取りと書き込みは、ファイルを操作するときに実行できる最も基本的な操作の 2つです。Java でファイルにデータを書き込んだり追加したりする方法はいくつかあります。この記事では、テキストファイルに追加する 4つの異なる方法について学習します。
Java の FileOutputStream
クラスを使用してテキストファイルにテキストを追加する
FileOutputStream
クラスは、バイナリデータをファイルに書き込むために使用されます。これは、int
や float
などのプリミティブデータ型に最も適していますが、文字指向のデータの書き込みにも使用できます。
文字列は、書き込む前にまずバイトの配列に変換する必要があります。この目的のために getBytes()
メソッドを使用できます。また、コンストラクターの 2 番目の引数として true
を渡す必要があります。この 2 番目の引数はブール追加フラグ用であり、既存のファイルに追加しようとしていることを示すために行われます。
無視すると、FileOutputStream
クラスがファイルの内容を上書きします。上記の場所にファイルがまだ存在しない場合は、新しいファイルが作成されます。
これは、The quick brown fox jumps over the lazy dog
という文を既存のファイルに追加しようとする例です。\r
と\n
は、新しい行の先頭にテキストを挿入するために使用されます。
import java.io.FileOutputStream;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileOutputStream f = new FileOutputStream(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes(); // converting string into byte array
f.write(byteArr);
f.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java の FileWriter
クラスを使用してテキストファイルにテキストを追加する
Java の FileWriter
クラスは、文字ストリームをファイルに書き込むように設計されています。これを使用して、既存のファイルまたは新しいファイルに文字または文字列を追加できます。上記のパスにファイルが存在しない場合は、新しいファイルが作成され、この新しいファイルにデータが書き込まれます。
以前の FileOutputStream
クラスとは異なり、書き込む前に文字列をバイトに変換する必要はありません。ただし、2 番目の引数として true
を FileWriter
コンストラクターに渡す必要もあります。これは、既存のファイルに追加しようとしていることを示します。
省略した場合、ファイルの既存のコンテンツが上書きされます。次のコードは、FileWriter
を使用して既存のファイルに 1 行を追加する方法を示しています。
import java.io.FileWriter;
public class SimpleTesting {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
fw.write(lineToAppend);
fw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java の BufferedWriter
クラスを使用してテキストファイルにテキストを追加する
FileWriter
クラスは、BufferedWriter
のような他のライターによってラップされることがよくあります。このプロセスは、BufferedWriter
が FileWriter
よりもはるかに効率的であるために行われます。
複数の書き込み操作がある場合は、BufferedWriter
が FileWriter
よりも優先されます。内部バッファメモリを使用して、ファイルに追加する必要のあるデータを保存します。このバッファがいっぱいになるか、追加するものがなくなると、BufferedWriter
が実際のファイルに書き込みます。
頻繁に書き込むのではなく、バッファからファイルに大量のデータを書き込みます。彼はより少ないシステムコールにつながります。したがって、通常の FileWriter
よりもはるかに効率的です。
ただし、書き込み操作が 1つしかない場合、BufferedWriter
は書き込みプロセスに別のステップを追加します。したがって、FileWriter
を使用する方がよいでしょう。
BufferedWriter
を使用するには、最初に FileWriter
オブジェクトが必要です。これを BufferedWriter
のコンストラクターに渡します。追加フラグには必ず true
を使用してください。
次のコードは、Java での BufferedWriter
の動作を示しています。
import java.io.BufferedWriter;
import java.io.FileWriter;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter bw = new BufferedWriter(fw);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
bw.write(lineToAppend);
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java の Files
クラスを使用してテキストファイルにテキストを追加する
Files
ユーティリティクラスは Java7 で追加され、ファイルにデータを書き込む別の方法を提供します。これを行うには、Files.write()
メソッドを使用します。このメソッドにはファイルパスが必要であり、文字列のバイト配列を追加する必要もあります。
また、既存のファイルにテキストを追加するには、StandardOpenOption.APPEND
を指定する必要があります。ファイルが指定されたパスに存在することを確認してください。それ以外の場合は、NoSuchFileException
を返します。
同じファイルに複数回書き込む必要がある場合、この方法はお勧めできません。ファイルも数回開閉され、全体的なパフォーマンスが低下するためです。
以下のコードは、Java I/O で Files.write()
メソッドがどのように機能するかを示しています。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String args[]) {
try {
String file = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes();
Files.write(Paths.get(file), byteArr, StandardOpenOption.APPEND);
} catch (Exception e) {
System.out.println(e);
}
}
}
Java のテキストファイルにテキストを追加する
Java には、ファイル処理のための複数のオプションが用意されています。FileOutputStream
、FileWriter
、BufferedWriter
、または Files
ユーティリティクラスを使用して、ファイルにデータを追加できます。
FileOutputStream
および Files
ユーティリティクラスの場合、最初に文字列をバイト配列に変換してから、write()
メソッドに渡す必要があります。
BufferedWriter
は、同じファイルに少量のデータを複数回書き込む必要がある場合に適しています。一方、FileWriter
および Files
ユーティリティクラスは、多数の書き込みに対して複数のシステムコールを実行します。これにより、全体的なパフォーマンスが低下します。
関連記事 - Java File
- Java でファイルから改行を削除する方法
- Java でファイルを閉じる
- Java JAR ファイルの作成と実行
- Java で 2つのファイルの内容を比較する
- Java でファイル サイズを取得する
- Java でファイルからバイトを読み取る