Hallo.
Ich lese mit einem Java-Programm eine XML-Datei aus. Da diese
mit UTF8 codiert ist und die Anwendung, die diese Daten bekommen soll nur US-ASCII ‚verträgt‘, möchte ich per Java, alle Sonderzeichen, die über DECIMAL 127 gehen, ersezten.
Wie und welche Möglichkeit ist am performantesten in Java zu realisieren?
Vielen Dank,
Fabian
Moin
Ich lese mit einem Java-Programm eine XML-Datei aus. Da diese
mit UTF8 codiert ist und die Anwendung, die diese Daten
bekommen soll nur US-ASCII ‚verträgt‘, möchte ich per Java,
alle Sonderzeichen, die über DECIMAL 127 gehen, ersezten.
Wie und welche Möglichkeit ist am performantesten in Java zu
realisieren?
Es gibt eine performatere Methode über „io-channels“, damit kenn ich mich allerdings nicht aus und es bringt nicht wirklich viel:
File org = new File ("org.XML");
File ASCII = new File ("ASCII.XML");
DataInputStream DIN = new DataInputStream (new BufferedInputStream (new FileInputStream (org)));
BufferedOutputStream BOUT = new BufferedOutputStream (new FileOutputStream (ASCII));
try {
String temp = "";
while (true){
temp = DIN.readUTF();
BOUT.write (temp.getBytes(charsetName));
}
}catch (EOFException E){
System.out.println ("fertig");
DOUT.flush();
DOUT.close();
}
Wer Fehler findet darf sie behalten. Auf meinem Rechner lastet das die Platten aus. (Es geht am schnellsten wenn org.XML und ASCII.XML auf verschiedenen Platten stehen.) Bei starten sollte man (besonders bei längeren Dokumenten) die Option „-server“ angeben. Den richtigen „charsetName“ must du selbst rausfinden.
cu