File in Java auslesen --> Code Problem
fresserettich 16.07.2005 - 21:21 1409 11
fresserettich
Here to stay
|
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
Bearbeitet von fresserettich am 31.07.2005, 16:05
|
ica
hmm
|
|
mat
AdministratorLegends never die
|
welche streamklasse benutzt du dafür?
|
fresserettich
Here to stay
|
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: public 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;
}
Bearbeitet von fresserettich am 18.07.2005, 08:16
|
ica
hmm
|
also ich weiss ja nicht was du sonst nocht machst, aber der code ArrayList 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");
}
gibt mir bei einer textdatei mit äü auch äü aus
|
prayerslayer
Oar. Mh.
|
generell is des ja egal das java mit unicode arbeitet oder? also ich mein des hat auf textdateien (o.ä.) keine auswirkung...
|
watchout
Legendundead
|
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?
|
prayerslayer
Oar. Mh.
|
auf nichts
|
gue
Addicted
|
|
prayerslayer
Oar. Mh.
|
//gepostet bevor ichs verstanden hab... sorry
Bearbeitet von prayerslayer am 26.07.2005, 18:55
|
fresserettich
Here to stay
|
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
|
that
ModeratorHoffnungsloser Optimist
|
hoffe es kennt sich jetzt jeder aus sonst einfach fragen Hier, ich schenk dir was: ,,,,,,,,,,,,,,,, ................. Zur entsprechenden Verteilung in deinem Post. Ansonsten ist diese Ansammlung von Wörtern eine Zumutung.
|