Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe versucht ein Verzeichnis aufzulisten und dann das Ergebnis in eine Datei umzuleiten.
Code:
import java.io.File;
import java.io.PrintWriter;
public class BuchstabenAbschneiden {
public static void main(String[] args) {
try {
File f = new File("test.txt");
f.createNewFile();
File auflisten = new File("C:/");
File[] fileArray = auflisten.listFiles();
for (int i = 0; i < fileArray.length; i++) {
PrintWriter pw = new PrintWriter("C:/test.txt");
pw.println(fileArray[i]);
pw.close();
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Das funktioniert auch, nur hab ich ein Problem mit dem PrintWriter da er mir ja jedes Mal neu in die Datei schreibt und am Ende nur noch C:\Windows drinsteht. Gibt es noch eine andere konfortablere Möglichkeit die Konsolen-Ausgabe in eine Datei umzuleiten? Stört euch bitte nicht an den wirren Bezeichnungen der Variablen und der Klasse. Ich glaube ich brauche irgendeinen Buffer nur bin ich mir nicht so wirklich im klaren wie das funktioniert.
Code:
for (int i = 0; i < fileArray.length; i++) {
PrintWriter pw = new PrintWriter(new BufferedWriter(
new FileWriter("C:/test.txt")));
pw.println(fileArray[i]);
pw.flush();
}
1.)
den PrintWriter nur EINMAL definieren, z.B. vor der Schleife, am Anfang des Programms usw.
2)
FileWriter mit Konstruktor-Parameter append verwenden, um Datei nicht zu überschreiben, sondern neuen Text anzuhängen
(1. ist aber besser)
3)
Information in einem StringBuilder in Java zusammenkleben und am Ende einmalig in die Datei schreiben
(leicht besser als 1., aber Geschmackssache)
# Set root logger level to DEBUG and output to Console.
log4j.rootLogger=DEBUG, stdout, file
# Stdout output is set to be a ConsoleAppender.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# Stdout uses PatternLayout.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
# log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %-5p: %m%n
# Log to file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log/application.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %-5p: %m%n
so z.b.
da erhälst du dann einen logger der auf die console und in die Datei schreibt.
Ansonsten kannst du noch mittels System.setOut() und System.setErr() einen anderen PrintStream als
die beiden standards System.out und Systen.err setzen