我试图读取二进制文件(例如一个可执行文件)转换成字符串,然后把它写回二进制文件字符串
FileStream fs = new FileStream("C:\\tvin.exe", FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
System.Text.Encoding enc = System.Text.Encoding.ASCII;
string myString = enc.GetString(bin);
fs.Close();
br.Close();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] rebin = encoding.GetBytes(myString);
FileStream fs2 = new FileStream("C:\\tvout.exe", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs2);
bw.Write(rebin);
fs2.Close();
bw.Close();
这不起作用(结果具有完全相同的尺寸相同字节,但是不能运行)
,如果我做bw.Write(BIN)的结果是正确的,但我必须将它保存为一个字符串
做一个十六进制比较,是逆序的字节? (小端到大端) – Amirshk 2010-06-05 11:49:10
为什么你需要将它存储为字符串? – 2010-06-05 12:09:35