File in Java auslesen --> Code Problem

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/file_in_java_auslesen_gt_code_problem_145942/page_1 - zur Vollversion wechseln!


fresserettich schrieb am 16.07.2005 um 21:21

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


ica schrieb am 16.07.2005 um 21:33

vielleicht hilft das

http://www-128.ibm.com/developerwor.../j-mer1022.html


mat schrieb am 17.07.2005 um 22:58

welche streamklasse benutzt du dafür?


fresserettich schrieb am 18.07.2005 um 08:14

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: PHP
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;
    }

 


ica schrieb am 18.07.2005 um 10:43

also ich weiss ja nicht was du sonst nocht machst, aber der code

Code: PHP
        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 schrieb am 26.07.2005 um 11:28

generell is des ja egal das java mit unicode arbeitet oder? also ich mein des hat auf textdateien (o.ä.) keine auswirkung...


watchout schrieb am 26.07.2005 um 11:39

Zitat von prayerslayer
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? :D


prayerslayer schrieb am 26.07.2005 um 18:08

auf nichts ;)


gue schrieb am 26.07.2005 um 18:31

@fresserettich:
Schau dir mal die Klassen an:
Charset, CharsetDecoder und InputStreamReader.
HTH


prayerslayer schrieb am 26.07.2005 um 18:48

//gepostet bevor ichs verstanden hab... sorry :)


fresserettich schrieb am 31.07.2005 um 16:04

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 schrieb am 02.08.2005 um 23:18

Zitat von fresserettich
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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026