Komisches Zeichen als Ausgabe in der Konsole

Master3000

Mitglied
Hallo,
ich lese mit einem BufferedReader eine .txt Datei aus.
Normalerweise klappt dies immer doch dieses mal komischerweise nicht.
Die Ausgabe der Datei in der Konsole hat immer nach jeder Zeile eine leere Zeile zu viel und am Anfang sind zwei komische Fragezeichen.
Was bedeuten diese Fragezeichen und wo liegt der Fehler ?

Links: ein Bild der Datei welche ausgelesen werden soll
Rechts: ein Bild der Konsole

Java problem1.JPGJava problem.JPG
BufferedReader:
        BufferedReader file = new BufferedReader(new FileReader("datei.txt"));
        StringBuffer inputBuffer = new StringBuffer();
        String linecounterr;


        while ((linecounterr = file.readLine()) != null) {}

Danke für alle Antworten
 

Oneixee5

Top Contributor
Die Leerzeile könnte am Windows-Zeilenumbruch liegen. BufferedReader hat leider keine Möglichkeit den Zeilenumbruch einzustellen.

Java:
    /**
     * Reads a line of text.  A line is considered to be terminated by any one
     * of a line feed ('\n'), a carriage return ('\r'), a carriage return
    ...
     */
    public String readLine() throws IOException { ...
 

Master3000

Mitglied
Hier die Datei welche ich teilweise verändert habe.
Was ist eine BOM Datei ?

Danke bis jetzt für alle Ansätze
 

Anhänge

  • datei.txt
    78 Bytes · Aufrufe: 2

mihe7

Top Contributor
Was ist eine BOM Datei ?
BOM = Byte Order Mark, eine Bytefolge anhand derer die Kodierung und Reihenfolge der Bytes bei Multibyte-Zeichensätzen erkannt werden kann.

Ist aber in der Datei nicht vorhanden:
Code:
00000000  0d 0a 30 0d 0a 35 30 30  30 30 30 0d 0a 67 65 73  |..0..500000..ges|
00000010  63 68 72 69 65 62 65 6e  65 73 0d 0a 67 65 73 63  |chriebenes..gesc|
00000020  68 72 69 65 62 65 6e 65  73 0d 0a 0d 0a 31 0d 0a  |hriebenes....1..|
00000030  0d 0a 67 65 73 63 68 72  69 65 62 65 6e 65 73 0d  |..geschriebenes.|
00000040  0a 67 65 73 63 68 72 69  65 62 65 6e 65 73        |.geschriebenes|
Da steht am Anfang ein einfacher CR/LF-Zeilenumbruch.
 

kneitzel

Top Contributor
Ist doch egal - die Datei kann man so auch herunter laden.

Und dann sieht man bei der Datei:
FF FE -> UTF-16 Little Endian BOM https://de.wikipedia.org/wiki/Byte_Order_Mark
und dann geht es halt immer in 2 Byte Blöcken weiter:
0D 00
0A 00
...

Wäre nur interessant, wie Du zu dieser Datei gekommen bist. Irgendwie habe ich "in freier Wildbahn" bisher nie ein BOM Header gesehen und Java kann damit auch nicht umgehen. Was hier nur hilft ist eine manuelle Lösung:
- Lies die ersten Bytes. Wenn diese FF FE sind, dann liest Du den Rest als UTF-16LE Encoded Stream ein.
(Also z.B. InputStreamReader nutzen und Encoding ist StandardCharset.UTF_16LE)

Du kannst dann auch noch das andere BOM mit berücksichtigen:
Sind die ersten zwei Bytes FE FF, dann ist das Encoding UTF_16BE
 

Master3000

Mitglied
Ist doch egal - die Datei kann man so auch herunter laden.

Und dann sieht man bei der Datei:
FF FE -> UTF-16 Little Endian BOM https://de.wikipedia.org/wiki/Byte_Order_Mark
und dann geht es halt immer in 2 Byte Blöcken weiter:
0D 00
0A 00
...

Wäre nur interessant, wie Du zu dieser Datei gekommen bist. Irgendwie habe ich "in freier Wildbahn" bisher nie ein BOM Header gesehen und Java kann damit auch nicht umgehen. Was hier nur hilft ist eine manuelle Lösung:
- Lies die ersten Bytes. Wenn diese FF FE sind, dann liest Du den Rest als UTF-16LE Encoded Stream ein.
(Also z.B. InputStreamReader nutzen und Encoding ist StandardCharset.UTF_16LE)

Du kannst dann auch noch das andere BOM mit berücksichtigen:
Sind die ersten zwei Bytes FE FF, dann ist das Encoding UTF_16BE
Könnte ich dann nicht einfach eine neue Datei mit denselben Inhalten erstellen ?
Wie ist diese Datei zu einer BOM geworden ?
 

kneitzel

Top Contributor
Wie hast du die Datei erzeugt?

Und unter Windows kannst Du z.B. Notepad++ nutzen, wenn du ein Encoding verändern willst. Dann öffnest du die Datei, konvertiert in das Encoding und speichert wieder. Das bringt aber nur etwas, wenn du nicht ständig solche Dateien bekommst, es sozusagen eine einmalige Sache ist.
 

Master3000

Mitglied
Irgendwie scheint es am FileWriter zu liegen welcher in die .txt Datei schreibt.
Die Datei habe ich manuell über Linksklick erstellt.
Danach ist die Datei dann eine BOM Datei.
Ich habe statt dem Namen der Variablen int und String geschrieben.


FileWriter:
        FileWriter writer;
        File datei = new File(filename);
        writer = new FileWriter(datei, true);
        writer.write(System.getProperty("line.separator"));
        writer.write(System.getProperty("line.separator"));
        writer.write(int);
        writer.write(System.getProperty("line.separator"));
        writer.write(System.getProperty("line.separator"));
        writer.write(String);
        writer.write(System.getProperty("line.separator"));
        writer.write(String);

        writer.flush();
        writer.close();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
hdi Komisches Problem mit ShutdownHook + SystemTray Allgemeine Java-Themen 23
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
G Komisches Ergebins Allgemeine Java-Themen 15
T Komisches Phänomen Allgemeine Java-Themen 8
S MEGA komisches entrySet() Phänomen Allgemeine Java-Themen 2
M Komisches Javascript Problem Allgemeine Java-Themen 2
K swing frage (komisches swing) <-- manoman was für n threa Allgemeine Java-Themen 2
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
Mart Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
N Überprüfung ob ein bestimmtes Zeichen <1 mal vorkommt Allgemeine Java-Themen 2
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
G Übermittlung zusätzlicher ASCII-Zeichen bei Übertragung von Dateiinhalt mit Xmodem - JAVA Allgemeine Java-Themen 9
R Wie bekomme ich das Zeichen 'digit' an vorderster Stelle Allgemeine Java-Themen 4
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
Bluedaishi Zeile um zeichen erweitern Allgemeine Java-Themen 9
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
DStrohma Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist? Allgemeine Java-Themen 1
B In Java String ein + Zeichen Allgemeine Java-Themen 4
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
J Anzahl der Zeichen bei Eingabe begrenzen Allgemeine Java-Themen 5
V Tastendruck für UTF-8 Zeichen emulieren Allgemeine Java-Themen 4
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
R Besondere Zeichen in Dateinamen Allgemeine Java-Themen 4
B Alt-Griechisch Zeichen in Dateien Allgemeine Java-Themen 2
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Fehlende Zeichen beim Drucken mit PDFBox Allgemeine Java-Themen 10
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
C Variablen $-Zeichen in String ersetzen Allgemeine Java-Themen 3
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
S String in Double - letztes Zeichen fehlt Allgemeine Java-Themen 4
A Erstes Zeichen im String "toUpperCase"n Allgemeine Java-Themen 11
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
Zettelkasten Aus String bestimmtes Zeichen herausfinden Allgemeine Java-Themen 19
M Asterisk in String ("Egal-Zeichen") Allgemeine Java-Themen 4
V Chinesische Zeichen Escapen Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D Datei mit allen Ascii Zeichen Allgemeine Java-Themen 2
R Unsichtbare Zeichen Allgemeine Java-Themen 7
U Namen von Klassen haben $-Zeichen Allgemeine Java-Themen 5
P RegEx und $-Zeichen als Literal Allgemeine Java-Themen 5
neonfly Anzahl Zeichen pro Zeile auf der Konsole Allgemeine Java-Themen 8
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
F Hexcode von ASCII Zeichen erhalten Allgemeine Java-Themen 2
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
V Dateien mit &-Zeichen im Namen öffnen Allgemeine Java-Themen 13
N String in einzelne Zeichen zerlegen Allgemeine Java-Themen 8
M Problem mit Zeichen aus einer Datei auslesen Allgemeine Java-Themen 2
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
G Tschechische Zeichen in XML-Antwort Allgemeine Java-Themen 22
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
S Stringarray splitten an unbekanntem Zeichen Allgemeine Java-Themen 7
A Dezimalzahlen: Komma-Zeichen Allgemeine Java-Themen 4
T Einzelnes Zeichen von der Tastatur einlesen, aber ohne Enter Allgemeine Java-Themen 4
S Was bedeutet dieser Zeichen Allgemeine Java-Themen 4
E Wie Zeichen eingeben mit Klasse Scanner? Allgemeine Java-Themen 5
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7
T [Regex] Zeichen ausschließen Allgemeine Java-Themen 8
Luma Unicode Steuerzeichen von druckbaren Zeichen trennen Allgemeine Java-Themen 10
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
G String parsen und Problem mit escaped zeichen Allgemeine Java-Themen 4
Z Letztes zeichen eines strings löschen Allgemeine Java-Themen 3
A bestimmte Zeichen aus einem String auslesen Allgemeine Java-Themen 2
L unicode-zeichen in ein txt-File schreiben Allgemeine Java-Themen 3
J Problem mit nichtlateinischen Zeichen Allgemeine Java-Themen 2
B String + Zeilenumbruch nach X-Zeichen Allgemeine Java-Themen 4
M Nach 4 Zeichen Fokus ändern Allgemeine Java-Themen 2
oliver1974 Wie ResourceBundles mit Unicode Zeichen korrekt einlesen? Allgemeine Java-Themen 4
E Alarm ausgeben (ASCII Zeichen 7) über Lautsprecher Allgemeine Java-Themen 11
G Alle Zeichen des Alphabets ausgeben Allgemeine Java-Themen 4
K String-Objekt mit zig tausend Zeichen Allgemeine Java-Themen 12
T Muster/Zeichen/Texterkennung auf einem Image Allgemeine Java-Themen 9
Y Zeichen verschiedenfarbig in einer JTextPane darstellen Allgemeine Java-Themen 17
P Regulärer Ausdruck um sich wiederholende Zeichen zu finden. Allgemeine Java-Themen 9
O Split methode tut bei Zeichen "\", "\\" Allgemeine Java-Themen 7
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
S Unicode-Zeichen erstellen/ Kodierung Allgemeine Java-Themen 4
J RegEx: "wenn zeichen folgen ersetze x mit y, sonst mit Allgemeine Java-Themen 2
Z Zeichen/char in einer Datei löschen Allgemeine Java-Themen 6
I $ zeichen im class-namen Allgemeine Java-Themen 4
S ￾ Zeichen umwandeln in ü per .replace(); Allgemeine Java-Themen 6
N Zeilenumbruch in String nach jeweils x Zeichen einfügen? Allgemeine Java-Themen 6
D gewisse Zeichen sind nach dem entschlüsseln anders Allgemeine Java-Themen 2
G Wandeln von Char Wert in Zeichen? Allgemeine Java-Themen 2
G subString() aber nicht auf Länge sondern auf Zeichen Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben