Hex-Datei in lesbare Zeichen umwandeln

helavi

Grünschnabel
Hallo,
ich bin Anfänger und habe ein wohl für die meisten von euch triviales Problem und hoffe hier auf Unterstützung.

Ich habe eine Datei mit hex-Zahlen, die ich in ein lesbares Format überführen möchte. Mein Vorhaben war, die Datei paarweise einzulesen, den ascii Wert zu berechnen und diesen als char auszugeben. Klappt leider nicht, da ich mit der read() Methode immer einen int, nämlich den ascii-Wert des eingelesenen Characters erhalte (der aber Teil meiner 2 stelligen hexzahl ist), und mit diesem Wert keine Rechenoperation durchführen kann.

Beispiel:
Die vorhandene Datei enthält z.B. 756c
Die Zieldatei soll hieraus ein ul generieren.

Erklärung:
75 hex = 7*16+5 = 117 decimal und ist der ascii Wert von u
6c hex = 6*16+12 = 108 decimal und ist der ascii Wert von l

Wahrscheinlich gibt es hierfür in Java vorgefertigte Methoden, man muß nur wissen welche und wo man sie findet.

Ich hoffe auf eure Unterstützung.
helavi
 
Hallo!

Siehe:

Code:
public class HexToChar {
	public static void main(String[] args) {
		String str = "756c756c756c756c756c756c756c756c756c756c";
		convertStr(str);
	}

	/**
	 * @param str
	 */
	private static void convertStr(String str) {
		int len = str.length();

		if (len % 2 != 0)
			throw new IllegalArgumentException("Nur Zeichenketten gerader länge werden akzeptiert!");

		for (int i = 0; i < len - 1; i += 2) {
			char c = (char) Integer.parseInt(str.substring(i, i + 2), 16);
			System.out.print(c); 
		}
	}
}

Gruß Tom
 
Zurück