2016-12-13 12 views
0

java出力からすべての行を.txtファイルに書き込む方法を知りたいと思います。
私がこれまでにいくつかのテストを行ってきたが、私は解決策を見つけることができていないようです:
:/
ここでは、あなたはこの1つで私を見ることができれば、それは非常に高く評価されるだろう、小さなコードです以下に示すコードは、ユーザーに.txtファイルで何を書き込むかを尋ねますが、ユーザーに何も尋ねずに.txtファイルにすべての印刷行を書きたいとします。すべてのJava出力をtxtファイルに書き込む

package test; 

import java.io.BufferedReader; 
import java.io.FileOutputStream; 
import java.io.InputStreamReader; 
import java.io.PrintStream; 


public class Test { 

    public static void main(String[] args)throws Exception { 
     System.out.println("Hello"); 
     System.out.println("Hi"); 
     System.out.println("Hola"); 
     System.out.println("Bonjour"); 
     System.out.println("Hallo"); 
     System.out.println("Hej"); 
     System.out.println("Alo"); 
     System.out.println("Ciao"); 
     writeOutput(); 

    } 
    public static void writeOutput() throws Exception { 
     BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
     String lineFromInput = in.readLine(); 
     PrintStream out = new PrintStream(new FileOutputStream("output.txt")); 
     System.setOut(out); 
     out.println(lineFromInput); 
     out.close(); 
    } 

} 
+0

あなたは、ユーザーにディスクまたは出力に書き込みをしていますか? – user2124871

+0

可能な重複:http://stackoverflow.com/questions/1994255/how-to-write-console-output-to-a-txt-file – JDC

+0

「Hello」などをファイルに書き込むことを意味します。入力を使用しますか? – GurV

答えて

1

String値を書き込むために直接PrintStreamを使用していただきありがとうございます。

public static void main(String[] args)throws Exception {   
    PrintStream printStream = new PrintStream(new File("output.txt")); 
    // hook for closing the stream 
    Runtime.getRuntime().addShutdownHook(new Thread(printStream::close)); 
    // writing 
    write(printStream,"Hello", "Hi", "Hola", "Bonjour", "Hallo", "Hej", 
    "Alo","Ciao");  
    // writing again 
    write(printStream, "A new String", "And again another one...");   
} 


public static void write(PrintStream printStream, String... values) throws Exception { 

    try{     
    for (String value : values){ 
     printStream.println(value); 
    } 
    printStream.flush(); 
    } 
    catch (Exception e){ 
     // handling exception 
    }  
} 

} 
+0

ああ、ありがとう、しかし別の方法でそれを作る方法はありますか? – Adriann

+0

あなたは大歓迎です。もちろん。しかし、なぜ ?そのメソッドはパラメータを取る必要がありますか?たとえば、ファイルに書き込むStringのvargs。 – davidxxx

+0

ところで、 'main'の最後に' PrintStream'を手動で閉じるのではなく、 'Runtime.getRuntime()。addShutdownHook(new Thread(out :: close));'を実行することをお勧めします。主ファイルの終わりの前にスローされたファイルがないために発生しない複数のスレッド/例外。 – fabian

0

java test.Test > somefile.txt

関連する問題