Ich versuche, ein Java-Programm zu machen, einige Texte in Offsets einer .bin-Datei (die Datei ist hexadezimal, aber es ist eine .bin-Datei) zu bearbeiten. Hier ist meine Klasse, die dies versucht:Open Text von einem gegebenen Offset (Java)
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import java.io.*;
public class Class{
public static String getOffsetText(String offset, File bin){
String txt = null;
try{
byte[] off = Hex.decodeHex(offset.toCharArray());
txt = new String(off, "UTF-8");
}catch(DecodeException | UnsupportedEncodingException e){
e.printStackTrace();
}
return txt;
}
}
Und hier ist der Fehler:
org.apache.commons.codec.DecoderException: Illegal hexadecimal character x at index 1
at org.apache.commons.codec.binary.Hex.toDigit(Hex.java:178)
at org.apache.commons.codec.binary.Hex.decodeHex(Hex.java:91)
1. Hinweis: meine Klasse mit der main-Methode nur versucht, diese Methode in einer GUI zu verwenden. Außerdem zeigt Eclipse nicht, dass mein Code Fehler oder Warnungen enthält.
2. Hinweis: Die .bin-Dateien, die ich habe, sind möglicherweise verschlüsselt, aber ich bin mir nicht ganz sicher, ob sie das sind.
Jetzt gibt es mir einen weiteren Fehler: 'org.apache.commons.codec.DecoderException: Ungerade Anzahl von Zeichen. \t bei org.apache.commons.codec.binary.Hex.decodeHex (Hex.java:82) ' – MethodHax
Es gibt eine Antwort auf diese in der folgenden Link http://Stackoverflow.com/a/10143209/6372296 – TomerSH
In Ordnung ! Es gibt jetzt keine Fehler. Das Textfeld, das den Text enthalten soll, ist jedoch immer leer. Auch wenn ich versuche, den Offset zu ändern. – MethodHax