ファイルにJavaで追記する。
今日は、Javaでファイルに追記する方法について見ていきます。Javaでのファイルへの追記は一般的なJava IO操作です。たとえば、何かをサーバーログに印刷すると、既存のファイルに追記されます。
ファイルにJavaで追記する
以下のクラスを使用することで、Javaでファイルに追記することができます。
-
- JavaでFileWriterを使用してファイルに追記する
-
- JavaでBufferedWriterを使用して既存のファイルにコンテンツを追記する
-
- JavaでPrintWriterを使用してテキストをファイルに追記する
- JavaでFileOutputStreamを使用してファイルに追記する
以下のリクエストを日本語で自然に言い換えてください。一つのオプションが必要です:
「JavaのFileWriterを使用してファイルに追加する」
以下は、JavaのFileWriterを使用してファイルに追記するための短いプログラムです。後で完全なJavaのファイルに追記する例をご紹介いたします。
File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
fr.write("data");
fr.close();
BufferedWriterを使用して、既存のファイルにJavaの内容を追加する。
File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write("data");
br.close();
fr.close();
JavaのPrintWriterを使用してファイルにテキストを追加する
私たちは、Javaでファイルに追記するためにPrintWriterを使用することもできます。
File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
PrintWriter pr = new PrintWriter(br);
pr.println("data");
pr.close();
br.close();
fr.close();
JavaのFileOutputStreamを使用してファイルに追記する
生データ、バイナリデータ、画像、ビデオなどのファイルにデータを追記する場合は、FileOutputStreamを使用する必要があります。
OutputStream os = new FileOutputStream(new File("append.txt"), true);
os.write("data".getBytes(), 0, "data".length());
os.close();
Javaのファイルへの追加例
上記で議論したすべての異なるオプションを表示する、最終のJavaファイル追加プログラムがこちらです。
package com.scdev.files;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
public class JavaAppendToFile {
/**
* Java append to file example
*
* @param args
*/
public static void main(String[] args) {
String filePath = "/Users/scdev/Downloads/append.txt";
String appendText = "This String will be appended to the file, Byte=0x0A 0xFF";
appendUsingFileWriter(filePath, appendText);
appendUsingBufferedWriter(filePath, appendText, 2);
appendUsingPrintWriter(filePath, appendText);
appendUsingFileOutputStream(filePath, appendText);
}
private static void appendUsingPrintWriter(String filePath, String text) {
File file = new File(filePath);
FileWriter fr = null;
BufferedWriter br = null;
PrintWriter pr = null;
try {
// to append to file, you need to initialize FileWriter using below constructor
fr = new FileWriter(file, true);
br = new BufferedWriter(fr);
pr = new PrintWriter(br);
pr.println(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
pr.close();
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Use Stream for java append to file when you are dealing with raw data, binary
* data
*
* @param data
*/
private static void appendUsingFileOutputStream(String fileName, String data) {
OutputStream os = null;
try {
// below true flag tells OutputStream to append
os = new FileOutputStream(new File(fileName), true);
os.write(data.getBytes(), 0, data.length());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Use BufferedWriter when number of write operations are more
*
* @param filePath
* @param text
* @param noOfLines
*/
private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) {
File file = new File(filePath);
FileWriter fr = null;
BufferedWriter br = null;
try {
// to append to file, you need to initialize FileWriter using below constructor
fr = new FileWriter(file, true);
br = new BufferedWriter(fr);
for (int i = 0; i < noOfLines; i++) {
br.newLine();
// you can use write or append method
br.write(text);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Use FileWriter when number of write operations are less
*
* @param filePath
* @param text
* @param noOfLines
*/
private static void appendUsingFileWriter(String filePath, String text) {
File file = new File(filePath);
FileWriter fr = null;
try {
// Below constructor argument decides whether to append or override
fr = new FileWriter(file, true);
fr.write(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Javaプログラムでのファイルへの書き込みは以上です。
私たちのGitHubリポジトリから、もっとJavaIOの例をチェックアウトできます。
参考文献:
- PrintWriter API Doc
- FileWriter API Doc
- BufferedWriter API Doc
- FileOutputStream API Doc