Lesen/schreiben .txt-Datei mit Sonderzeichen

Öffne ich Editor (Windows) und schreiben

Some lines with special characters
Special: Žđšćč

und gehen Sie zu Speichern unter... "someFile.txt" mit Codierung eingestellt UTF-8.

In Java habe ich

FileInputStream fis = new FileInputStream(new File("someFile.txt"));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);

String line;
while((line = in.readLine()) != null) {                         
    printLine(line);
}
in.close();

Aber ich bekomme nur Fragezeichen und ähnliche "Besondere" Zeichen. Warum?

EDIT: ich habe dieses Eingangs (line in .txt-Datei)

665,Žđšćč

und dieser code

FileInputStream fis = new FileInputStream(new File(fileName));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);

String line;
while((line = in.readLine()) != null) {
    Toast.makeText(mContext, line, Toast.LENGTH_LONG).show();

    Pattern p = Pattern.compile(",");
    String[] article = p.split(line);

    Toast.makeText(mContext, article[0], Toast.LENGTH_LONG).show();
    Toast.makeText(mContext, Integer.parseInt(article[0]), Toast.LENGTH_LONG).show();
}
in.close();

Und Toast - Ausgang (für diejenigen, die nicht vertraut mit Android, Toast ist nur eine Methode, um zu zeigen, ein pop-up auf dem Bildschirm mit bestimmten text) in Ordnung ist. Die Konsole zeigt "komische Zeichen" (wahrscheinlich wegen der Codierung in der Konsole-Fenster). Aber es schlägt fehl, parsing-eine ganze Zahl weil die Konsole sagt dies (warning: toast output is just fine) - Problem?

Wie es scheint, wird die Zeichenfolge ein, die einige "komische" Zeichen, die Toast nicht zeigen kann/Rendern, aber wenn ich versuche zu analysieren, stürzt es ab. Vorschläge?

Wenn ich ANSI im Editor funktioniert es (integer Parsen) und es gibt keine sonderbaren chars wie in der Abbildung oben, aber natürlich meine Sonderzeichen nicht funktionieren.

  • Was ist in dieser printLine(line) Funktion?
  • while((line = in.readLine()) != null) - Macht Java selbst lassen Sie das tun? Ich dachte in Java, Zuordnungen nicht als Ausdrücke...
  • printLine nur Drucke es auf mein Debugger (Eclipse) - in diesem Fall die zweite Zeile wird "01-04 20:01:23.394: VERBOSE/line(32246): Spezielles: ŽÄÅ¡ŽŽ"
  • while((Zeile = in.readLine()) != null) - ja, Sie können dies tun, Eric. Die Bedingung, dass die while-Schleife die Bewertung (A != null) wo ist das Ergebnis des Lesens einer Zeile aus dem stream.
  • eigentlich mein problem ist ein wenig anders, eigentlich mein Dateiname ist Žđšćč und ich erhielt den Fehler FileInputStream fis = new FileInputStream(new File("Žđšćč.txt")); plzz helfen
InformationsquelleAutor svenkapudija | 2011-01-04
Schreibe einen Kommentar