Auslesen - Anzeigen - Schreiben

Hallöchen,

ich muss leider schon wieder blöde fragen stellen. :D

Ich habe eine Aufgabenstellung, in der ich aus einem Server Logfile, bestimmte Meldungen raus suchen will, diese vorher auf der Konsole anzeigen lassen möchte und das soeben angezeigte in eine neue Datei schreiben möchte. Zuvor wird der Benutzer gefragt welche daten er auslesen will. Zb [INFO], [SERVER], [WARNING] ect.

Der Ablauf klappt auch, er liest die daten aus, fragt nach den Meldungen, zeigt alles wieder auf der Konsole an und speichert alles in einer txt.

Aaaaaaaaber.... ich hab große Probleme mit den Zeilenumbrüchen, ich bekomm es einfach nicht hin, das er nach jeder Zeile einen bracke macht und mit einer neuen Zeile anfängt. Ich hab es schon mit verschiedenen Methoden probiert die ich im Internet gefunden habt, nur bekomme ich es nicht hin.

Vielleicht würde sich mal jemand den Code angucken. Und wenn jemand was entdeckt einen kleinen Denkanstoß geben.

Dankeschön :)

Java:
package datenauslesenundspeichern;
import java.io.*;

/**
 *
 * @author Mr_Klobuerste
 */
public class DatenAuslesenUndSpeichern {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
    try {
 
         BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
 
         System.out.println("*********************");
         System.out.println("***  Datenzugriff ***");
         System.out.println("*********************");
 
         System.out.println("Nach Welchen Werten soll gesucht werden? (SEVERE | WARNING | Error)");
         String Meldung;
         Meldung = input.readLine();
         

         String logFile = "";
         StringBuilder sb = new StringBuilder();
         String replacement = "\n";
         String regex = "\n";
            BufferedWriter inFile2;
            try (BufferedReader inFile = new BufferedReader (new FileReader ("J:\\server_log2.txt"))) {
                inFile2 = new BufferedWriter (new FileWriter ("J:\\logfile2.txt"));
                logFile = inFile.readLine();
                while (logFile!= null)
                {
                   if (logFile.startsWith (Meldung, 21))
                   {
                   //sb.append(logFile).append("\n");
                   System.out.println(logFile);
                   inFile2.write(logFile);
                   }
                   logFile = inFile.readLine();
                   
                }

            }
         inFile2.close();
         
    }
 
        catch(Exception ex)
         {
  System.out.println("Feheler !!!");
 
  System.out.println(ex.getMessage() );
 
       }
 
        // TODO code application logic here
    }
}
 
Ich hab es jetzt mit dem PrintWriter probiert und auch mit dem line.separator... ich bekomme es irgendwie nicht hin. Ich glaub ich hab mich da total verfriemelt :-(

Java:
         String logFile;
         StringBuilder sb = new StringBuilder();
         String sep = System.getProperty("line.separator");       
         PrintWriter inFile2;
         FileReader fr = null;
         BufferedReader br = null;
         
            try (BufferedReader inFile = new BufferedReader (new FileReader ("J:\\server_log2.txt"))) 
             {
                inFile2 = new PrintWriter (new FileWriter ("J:\\logfile2.txt"));
                logFile = inFile.readLine();
                while( (logFile=br.readLine()) != null )
                sb.append(logFile+sep) ;
                {
                   if (logFile.startsWith (Meldung, 21))
                   {
                   //sb.append(logFile).append("\n");
                   System.out.println(sb);
                   inFile2.write(logFile);
                   }
                   logFile = inFile.readLine();
                   
                }

            }
 
S

SlaterB

Gast
wie wäre es mit bisschen Ordnung?

> try (BufferedReader inFile = new BufferedReader (new FileReader ("J:\\server_log2.txt")))
ich weiß nicht ob du nur tausende Fehlermeldungen verschweigst oder in neuen Java-Versionen alles möglich ist,
aber halte dich doch bitte an einfache bekannte Syntax,
wie ein try/ catch-Block aussieht kann man wohl nachschlagen,

für den Anfang geht es auch ganz ohne try/catch, im Zweifel an alle Methoden 'throws Exception' ranschreiben

----

du liest aus br, aber das ist null, wird nie befüllt?

'inFile' für einen Einlesestream ist noch ganz guter Name, für einen Writer dann aber 'inFile2' ist ja ganz schlimm, wie wärs Richtung outFile?

'logFile' für einen String ist besonders nach den anderen Namen schlecht, was soll das ausdrücken?
es ist kein Stream, es ist kaum ein ganzes File, ..
'line' wäre als Name eine Richtung

-----

Java:
                while( (logFile=br.readLine()) != null )
                sb.append(logFile+sep) ;
                {
Syntax, Syntax, Syntax wiederum,
da musst du mit aller höchster Strenge drauf achten, keine wilden Zeilen zusammenbauen,

hier besteht die Schleife nur aus der folgenden Zeile, das { öffnet einen beliebigen nicht verknüpften Block,
wenn das { zur Schleife gehören soll muss es direkt beim while stehen, ganz wie in jedem Lehrbuch locker leicht zu lesen

auf Experimente, eigende Abkürzungen usw. als Anfänger lieber verzichten,
wenn es irgendwo anders steht dann erstmal untersuchen, verstehen, auf normale Syntax umbauen,

im Zweifel auch testen, es ist keine Schande in eine vermutete Schleife erstmal nur System.out.println("Hallo"); reinzuschreiben, anschauen was passiert, ob Wiederholung stattfindet,
die eingelesenen Zeilen auszugeben wäre z.B. ein sinnvollerer Schritt zum Ziel statt hunderte Verarbeitungsaktionen unklar zusammenzukleistern,

lieber wenig Code, aber wissen was man schon hat!
etwas nicht zu verstehen und zu verwenden, evtl. falsch, das ist keine Programmierung
 
Zuletzt bearbeitet von einem Moderator:
Danke für das Feedback :)
Dann werde ich wohl erst einmal Ordnung rein bringen. In meinem Ersten Post funktioniert es ja alles ganz gut, jedoch schreibt er halt alles nach einander ohne Absatz. Aber du hast schon recht, ich hab da einfach ein paar Beispiele rein "geklatscht" und gehofft es funktioniert. :oops: Ich werde jetzt erst einmal bissl in der API rum lesen. Danke :)
 
Soweit so gut. Quellcode ist aufgeräumt und von sämtlichen Mülle befreit.

Java:
 String line;
            PrintWriter outFile;
            BufferedReader inFile;

            {
                inFile = new BufferedReader(new FileReader("J:\\server_log2.txt"));
                outFile = new PrintWriter(new FileWriter("J:\\logfile2.txt"));
                line = inFile.readLine();
                while (line != null) 
                {
                    if (line.startsWith(Meldung, 21))
                    {
                        System.out.println(line);
                        outFile.write(line);
                    }
                    line = inFile.readLine();

                }

            }
            outFile.close();

Bleibt nur noch die frage wie ich die Zeilenumbrüche hin bekomme. Da muss ich mich noch einmal belesen, ansonsten melde ich mich noch einmal. PS: geht das so? Schaut auf jeden fall übersichtlicher aus. :)
 
S

SlaterB

Gast
statt
> outFile.write(line);
die vorgeschlagene println() Methode oder zwischen den Zeilen nun noch ein write() für den Separator
 
Zeile 14 muss .println(...) lauten - wie oft denn noch?

Ja sorry, hatte das vorhin mit dem anderen code probiert da hatte es nicht funktioniert. Daher hatte ich mich erst einmal darauf konzentriert die Syntax zu sortieren. :)

@jwiesmann

"Prints a String and then terminates the line." :idea: PS hat klick gemacht.

Ich werde das heute Abend noch einmal Compilieren, jetzt bin ich noch auf Arbeit.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K daten von jtable auslesen und in einer anderen klasse anzeigen und bearbeiten Java Basics - Anfänger-Themen 7
P JSP - Daten aus externer Datei auslesen und anzeigen Java Basics - Anfänger-Themen 3
D Dateien aus Ordner auslesen und in JList anzeigen! Java Basics - Anfänger-Themen 33
M Dateiverzeichnis auslesen und anzeigen. Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben