2016-12-13 5 views
0

Ich würde gerne wissen, wie Sie alle Zeilen von der Java-Ausgabe in einer TXT-Datei schreiben.
Ich habe bis jetzt einige Tests gemacht, aber ich bin nicht in der Lage, die Lösung zu finden:/
Hier ist ein kleiner Code, wenn Sie mir mit diesem zeigen könnten, würde es sehr geschätzt werden:
Der unten gezeigte Code fragt den Benutzer, was er in eine TXT-Datei schreiben soll, aber ich möchte, dass er alle gedruckten Zeilen in eine TXT-Datei schreibt, ohne den Benutzer etwas zu fragen. DankeSchreiben Sie alle Java-Ausgabe in eine TXT-Datei

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

Sind Sie an einen Benutzer auf der Festplatte oder in die Ausgabe geschrieben wird? – user2124871

+0

Mögliche Duplikate: http://StackOverflow.com/Questions/1994255/How-to-Write-Console-Output-To-Atxt-file – JDC

+0

Sie meinen, Sie möchten "Hallo" usw. in die Datei schreiben mit was Eingaben verwenden? – GurV

Antwort

1

Verwendung direkt PrintStream die String Werte zu schreiben.

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

Oh wow, danke, aber gibt es einen Weg, es mit einer separaten Methode zu machen? – Adriann

+0

Gern geschehen. Na sicher. Aber warum ? Soll diese Methode Parameter annehmen? Zum Beispiel eine Varg von String, um in die Datei zu schreiben. – davidxxx

+0

Übrigens: Ich würde 'Runtime.getRuntime(). AddShutdownHook (neuer Thread (out :: close));' empfehlen, anstatt den 'PrintStream' am Ende des' main' manuell zu schließen, da dies ebenfalls eine Rolle spielt Mehrere Threads/Exceptions, die nicht dadurch verursacht wurden, dass die Datei nicht vor dem Ende des Main-Objekts gefunden wurde. – fabian

0

java test.Test > somefile.txt

Verwandte Themen