Lesen Sie hex in C# mittels IO
HALLO,
Ich bin neu in der C# - verschieben von Java. Zu Lesen versucht, in eine Datei mit IO in HEX. Wenn ich lese das erste byte in die ich nicht bekomme, was ich bin zu sehen in meinem Hex-editor.
Ich bin mit
StreamReader reader = new StreamReader(fileDirectory);
int hexIn;
String hex;
for (int i = 0; (hexIn = reader.Read()) != -1; i++){
hex = Convert.ToString(hexIn, 16);
}
in Java verwendete ich...
FileInputStream fis = new FileInputStream(file);
long length = file.length();
int hexIn;
String hex = "";
for(int i = 0; (hexIn = fis.read()) != -1; i++){
String s = Integer.toHexString(hexIn);
if(s.length() < 2){
s = "0" + Integer.toHexString(hexIn);
}
Ich hoffe, das macht Sinn. Jede Hilfe wäre sehr apperciated 🙂
Dank
- Was erhalten Sie im Vergleich zu dem, was Sie erwarten?
- Hallo, ich bin immer FFFD nicht D0CF, es scheint, dass die FFFD das Lesen in der ascii-D0CF, immer verwirrt, jetzt ha ha
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht mit einem
StreamReader
—das ist nur für Zeichen in einer bestimmten Codierung (default UTF8). Verwenden Sie eineFileStream
Klasse statt:Brauchen Sie solche
C#
code, um die gleichen Ergebnisse erzielen wie Ihre Java-code:Den
Convert.ToString
funktioniert auch, ist aber IMO mit der nativenToString
von der integer ist besser der Praxis.Trotzdem fehlten die
PadLeft
Teil, verursacht in der Tat 15 zu 'f' statt0F
.0F
- und das ist es, was hex-Editoren zeigen, aber hinter der Haube ist es das gleiche. 🙂