Input/Output Konsolenausgabe in Textdatei speichern/umleiten

Nonsens

Mitglied
Hallo allerseits,

ich möchte die Konsolenausgabe in einer Textdatei speichern,habe gelesen es soll mit dem FileReader und FileWriter oder Logger möglich sein,habe aber nicht verstanden wie es genau geht.
Die Konsolenausgabe,sollte übrigens nicht mit der Methode "kopieren und einfügen" in txt.Datei gespeichert werden.

Könnte mir Jemand eine Schritt für Schritt Anweisung aufschreiben.

Ich verwende den JavaEditor,falls es eine Rolle spielt.
 
Zuletzt bearbeitet:
Was soll das entsprechende Programm denn machen, wofür die die Konsolenausgaben gut?

Wenn es sich wirklich nur um Logausgaben handelt bist du mit einem Logger am besten dran, dann musst du den aber auch konsequent für jede Konsolenausgabe benutzen.
Wenn die Konsole (auch) für Userinteraktion benutzt wird wäre ein anderer Ansatz sinnvoll (Wrappermethode für die Ausgabe oder irgendwie am System.out rumbiegen 😀)
 
Es sollen einfach nur die berechneten Ergebnise in einer txt.Datei gespeichert werden und wie gesagt ich brauche eine StepByStep
Anweisung,steht ja auch in der Kategorie Anfänger
 
Was du machen kannst ist folgendes:

1. Du legst dir eine Klasse an (ConsoleOutput oder so). Da legst du die statischen Methoden "print(String output) und "println(String output)" an, sowie ein statisches Attribute "PrintWriter printWriter" und eine statische Settermethode dafür.
2. In den beiden Methoden leitest du den Parameter an die entsprechenden Methoden von printWriter und System.out weiter (also e.g. "printWriter.print(output);")
3. Am Anfang von deinem Programm initialisierst du das Attribute ConsoleOutput.printWriter mit "ConsoleOutput.setPrintWriter(new PrintWriter(new OutputStreamWriter(new FileOutputStream("Pfad zu deiner Datei")));"
4. Am Ende deines Programms schließt du den PrintWriter mit "printWriter.close();"
5. Du ersetzt in deinem Programm alle Aufrufe von "System.out.print" und "System.out.println" durch "ConsoleOutput.print/println".

Wenn du sowieso nur eine Klasse hast kannst du dir die ConsoleOutput Klasse auch sparen und die Methoden sowie das Attribute direkt in der Programmklasse unterbringen.
Das ist zwar nicht gaaanz sauber so aber ich wollte es einfach halten 🙂
 
Folgendes Ergebins

1.Methode von Danz


public class ConsoleOutput{
//Globale Variablen
private static String printWriter;

//Instanzvariablen

//Methoden
public static String print(String output){
return output;
}
public static println(String output){
return output;
}
public static String getPrintWriter(){
return printWriter;
}
public static void setPrintWriter(String printWriter){
this.printWriter=printWriter;
}
//Hauptmethode
public static void main(String[] args){

ConsoleOutput.setPrintWriter(new PrintWriter(new OutputStreamWriter(new FileOutputStream("Pfad")))

ConsoleOutput.println("Test");

"printWriter.close();
}
}

Ich glaube Schritt 2 nicht ganz verstanden zu haben.

2.Methode von Michael

Die Umleitung hat funktioniert und ist in txt. Datei gespeichert,jedoch ist keine Ausgabe auf der Konsole zu sehen,wie kann man dies ändern?
 
nene so:

Java:
public static println(String output){
    System.out.println(output);
    printWriter.println(output);
}
 

Zurück
Oben