Ecrire dans la console et fichier texte
J'ai trouvé le code ci-dessous à partir de l'internet, les œuvres, mais il n'a pas d'écrire l'imprimé de la console de omt.txt il écrit seulement les System.out.println
déclarations après le deuxième bloc catch.Si vous exécutez le code une fois que vous comprenez ce que je veux dire.Tout ce que je veux est d'écrire ce qui est sur la console "omt.txt" fichier c'est tout...
Après quelques réponses, je vois que ma question n'était pas clair, désolé.
Je veux sauver la sortie de la console à omt.txt fichier texte. Si sur la console "Bonjour 123" est imprimé , il devrait également être en omt.txt fichier.En d'autres mots quelque chose sur la console est imprimé doit être écrites simultanément sur le om.txt fichier ou peut-être après la console d'exécution, mais devrait être de 1-à-1 le même!
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Wrt_file {
public static void main(String[] args) {
System.out.println("THIS is what I see on the console. but not on TEXT file");
File f = new File("omt.txt");
if(!f.exists())
{
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(f);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("THIS is what I see on the text file, but not on CONSOLE");
for (int i=0; i<10; i++){
System.out.println("Testing");
}
}
}
source d'informationauteur Anarkie
Vous devez vous connecter pour publier un commentaire.
Mise à jour de réponse après avoir appris que l'OP veut dupliquer flux
Puisque vous souhaitez écrire les données dans les deux ruisseaux essayez d'utiliser
TeeOutputStream
de Apache Commons. Modifier votre code dans la deuxième essayez deMaintenant les résultats de
System.out
sera également placé dans votre fichier.Dans
System.java
c'est la déclaration de laout
propriété:Vous verrez que cela ne peut être qu'une PrintSteam objet à la fois. Donc c'est soit la console ou le fichier, mais pas les deux.
À cette ligne, vous avez effectivement re-canaliser la destination:
De sorte que votre sortie s'arrête l'affichage sur la console.
La raison en est :
The java.lang.System.setOut()
méthode réassigne le "standard" flux de sortie.ainsi, lorsque vous utilisez
System.out.println
il permet d'imprimer uniquement dans le fichier texteDonc , si vous souhaitez imprimer le fichier texte et sur la console , Essayez ceci :