JavaでSystem.out.println()の出力をファイルにリダイレクトする方法
Systemクラスのoutフィールドは、標準出力ストリームを表すオブジェクトであり、PrintStreamクラスのインスタンスです。
このPrintStreamが持つprintln()メソッドは、Javaの有効な任意の型の値を受け取り、その値を出力した後に行末で改行します。
デフォルトでは、コンソール(画面)がJavaの標準出力ストリーム(System.out)として設定されており、System.out.println()メソッドに文字列を渡すと、その文字列がコンソール上に表示されます。
System.out.println()の出力をリダイレクトするには
java.lang.SystemクラスのsetOut()メソッドは、PrintStreamクラスのオブジェクトを引数として受け取り、それを新しい標準出力ストリームとして設定します。
したがって、System.out.println()の出力をファイルにリダイレクトするには、以下の手順に従います。
Fileクラスのオブジェクトを作成します。
作成したFileオブジェクトを引数として渡し、PrintStreamクラスをインスタンス化します。
SystemクラスのsetOut()メソッドを呼び出し、PrintStreamオブジェクトを渡します。
最後に、println()メソッドを使ってデータを出力すると、その内容は最初の手順で作成したFileオブジェクトが表すファイルに書き込まれます。
サンプルコード
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
public class SetOutExample {
public static void main(String args[]) throws IOException {
// Fileクラスのインスタンス化
File file = new File("D:\\sample.txt");
// PrintStreamクラスのインスタンス化
PrintStream stream = new PrintStream(file);
System.out.println("これ以降、" + file.getAbsolutePath() + " があなたのコンソールになります");
System.setOut(stream);
// ファイルへ値を出力
System.out.println("Hello, how are you");
System.out.println("Welcome to Tutorialspoint");
}
}
実行結果
これ以降、D:\sample.txt があなたのコンソールになります
-
Javaで一時ファイル(テンポラリファイル)を作成する方法
プログラムの実行中に、一時的な情報を保存するためにその場で一時ファイルを作成し、後から削除したいケースはよくあります。 Javaでは、Files.createTempFile() メソッドを使用することで、簡単に一時ファイルを作成できます。 一時ファイルの作成 次の例では、Files.createTempFile(prefix, suffix) を使って一時ファイルを作成しています。 import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class CreateTem
-
Javaでファイルに書き込む5つの方法|サンプルコード付きで解説
この記事では、Javaを使ってファイルに書き込む5つの異なる方法を紹介します。各コード例では、書き込み前にファイルが存在するかどうかを確認し、存在しない場合には新しくファイルを作成するようになっています。 BufferedWriterを使ってファイルに書き込む import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class WriteToFile { public static void main( Strin