URL: https://www.overclockers.at/coding-stuff/file_in_java_auslesen_gt_code_problem_145942/page_1 - zur Vollversion wechseln!
Hi!
Lese mit Java ein Textfile aus und habe dabei folgendes Problem:
Ich lese die Datei aus nur werden bestimmte Zeichen falsch ausgelesen z.B. ä wird zu " (nur halt nach unten gestellt) so habe mir also das file in einem hexeditor angesehen und bin draufgekommen dass dieser hexwert im im uni code genau dieses zeichen darstellt als was ich es dann mit system.out.println ausgegeben bekomme
bin mir ziemlich sicher dass das file im ansi-code abgespeichert worden ist und java eben mit uni-code arbeitet
wollte daher folgende lösung anstreben ich wandle den code in ein char array um und vergleiche mit dem entsprechenden hexwert wenn gefunden dann zeichen ersetzen ich frage den hexwert vom char mit der funktion getnumericvalue nur die liefert mir immer minus eins zurück bei meinen problemzeichen
wie könnte ich das problem lösen oder wo ist mein fehler?
edit: wichtig file scheint doch im ansi-code abgespeichert worden zu sein
vielleicht hilft das
http://www-128.ibm.com/developerwor.../j-mer1022.html
welche streamklasse benutzt du dafür?
hat mir leider auch nicht weitergeholfen bekomm eine execption wenn ich umlaute im string habe
wenn ich z.B. versuche über den dezimalen wert zu vergleichen geht der vergleich zwar bei den normalen buchstaben aber nicht bei umlauten 
edit:
Einlese-Code:
Code: PHPpublic ArrayList getFile(String pfad,boolean addLine) { ArrayList list = new ArrayList(); //FileReader f; BufferedReader f; char ch ; String leerStr=""; int k; String str =""; String line=""; //aus File auslesen try { f = new BufferedReader(new FileReader(pfad)); //File aus lesen und jede Zeile in eine ArrayList von Strings speichern while ((line = f.readLine())!= null) { list.add(line); if(line.length() == 1) leerStr = line; } f.close(); //LeerZeile an die letzte Stelle anfügen if(addLine == true) list.add(leerStr); } catch (IOException e) { System.out.println("Fehler beim Lesen der Datei"); } return list; }
also ich weiss ja nicht was du sonst nocht machst, aber der code
Code: PHPArrayList list = new ArrayList(); BufferedReader f; String line=""; try { f = new BufferedReader(new FileReader("c:\\file.txt")); while ((line = f.readLine())!= null) list.add(line); f.close(); System.out.println(list.get(0)); } catch (IOException e) { System.out.println("Fehler beim Lesen der Datei"); }
generell is des ja egal das java mit unicode arbeitet oder? also ich mein des hat auf textdateien (o.ä.) keine auswirkung...
ähm, wenn nicht auf textdateien - auf was dann sonst?Zitat von prayerslayergenerell is des ja egal das java mit unicode arbeitet oder? also ich mein des hat auf textdateien (o.ä.) keine auswirkung...

auf nichts 
@fresserettich:
Schau dir mal die Klassen an:
Charset, CharsetDecoder und InputStreamReader.
HTH
//gepostet bevor ichs verstanden hab... sorry 
also problem ist gelöst aber nochmal das file ist ja nicht von mir erstellt worden sondern existiert bereits und ich lese das file aus nur die zeichen die in diesem file ausgelesen werden sind im uni-code kein ä,ö oder ü sondern ein anderes
die charset etc. hab ich mir angeschaut und habe leider beim umwandeln eine exception bekommen
meine lösung schaut nun so aus ich habe mir die entsprechenden unic-codes für die zeichen gesucht in der die umlaute konvertiert
dann wandle ich jede zeile in char-array um und durchsuche das array wenn dann ein char gleich dem entsprechenden uni-code ist wird es einfach durch ein ä oder was halt dann sein soll ersetzt
hoffe es kennt sich jetzt jeder aus sonst einfach fragen 
Zitat von fresserettichhoffe es kennt sich jetzt jeder aus sonst einfach fragen
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026