Hallo zusammen,
ich möchte eine Textdatei einlesen die mit dem Zeichensatz ISO 8859-15 kodiert ist. Es soll ein nach dem anderen Zeichen eingelesen werden. Also byte für byte. Jedes Byte soll dann Hexadezimal ausgegeben werden.
Das Problem ist, dass ich bytes auslese die einen größeren Wert als 255 haben. Das ist allerdings nicht möglich, da es bei Latin-9 nur Zeichen zwischen 0-255 gibt (0x00 bis 0xFF). Irgendwie werden die Zeichen falsch interpretiert.
Ich verwende nen InputStreamReader und die read() Methode. Habe auch schon nen BufferedReader verwendet, aber selbes Ergebnis.
Es sollen alle Zeichen der Textdatei ausgelesen werden. Also auch Steuerzeichen, Leerzeichen Umbrüche etc. Somit kann ich leider keine Methoden wie "readLine()" oder dergleichen verwenden.
Hier mein Code:
Vielen Dank für eure Hilfe!
Gruß
Sim0n
ich möchte eine Textdatei einlesen die mit dem Zeichensatz ISO 8859-15 kodiert ist. Es soll ein nach dem anderen Zeichen eingelesen werden. Also byte für byte. Jedes Byte soll dann Hexadezimal ausgegeben werden.
Das Problem ist, dass ich bytes auslese die einen größeren Wert als 255 haben. Das ist allerdings nicht möglich, da es bei Latin-9 nur Zeichen zwischen 0-255 gibt (0x00 bis 0xFF). Irgendwie werden die Zeichen falsch interpretiert.
Ich verwende nen InputStreamReader und die read() Methode. Habe auch schon nen BufferedReader verwendet, aber selbes Ergebnis.
Es sollen alle Zeichen der Textdatei ausgelesen werden. Also auch Steuerzeichen, Leerzeichen Umbrüche etc. Somit kann ich leider keine Methoden wie "readLine()" oder dergleichen verwenden.
Hier mein Code:
Code:
public void readFile(File textFile) {
InputStreamReader ISR = null;
FileInputStream FIS;
try {
FIS = new FileInputStream(textFile);
ISR=new InputStreamReader(FIS, Charset.forName("ISO-8859-15") );
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
int latinCode=0;
String hexValue;
while(true){
try {
latinCode=ISR.read();
if(latinCode==-1){
return;
}
hexValue=Integer.toHexString(latinCode).toUpperCase();
System.out.println(hexValue);
}catch (NoSuchElementException e){
...
} catch (IOException e) {
...
}
}
}
Vielen Dank für eure Hilfe!
Gruß
Sim0n
Zuletzt bearbeitet: