【发布时间】:2014-02-24 01:02:43
【问题描述】:
全部
我对处理二进制数据非常陌生。
我正在研究一些来自 MSDN 的代码。
服务器端:
string fileName = "AppSettings.dat";
using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
writer.Write(1.250F);
writer.Write(@"c:\Temp");
writer.Write(10);
writer.Write(true);
}
我从服务器收到了二进制文件。
string clientFile = "AppSettings.dat";
using (BinaryReader reader = new BinaryReader(File.Open(clientFile, FileMode.Open)))
{
float aspectRatio = reader.ReadSingle();
string tempDirectory = reader.ReadString();
int autoSaveTime = reader.ReadInt32();
bool showStatusBar = reader.ReadBoolean();
}
使用 BinaryWriter 和 BinaryReader 类似乎很容易读写。
但是,这是我的问题。
服务器开发人员离开了公司,不知何故没有人能联系到他。
我不知道他是怎么写信给 BinaryWriter 的。
我的意思是确切的顺序。
在示例中,我必须按顺序阅读阅读器
单读
读取字符串
ReadInt32
ReadBoolean
那我就可以得到正确的结果了。
但在我的情况下,我不知道确切的顺序。
所以,我可以尝试的是如何一次读取所有字符和数字。
喜欢……
string contents = reader.someMethod;
然后内容如下:
1.250F
c:\Temp
10
true
回车可以跳过。
编辑
我已经尝试过 File.ReadAllBytes。
但结果并不是我所期望的……
byte[] bytes = System.IO.File.ReadAllBytes(clientFile);
string contents = Encoding.UTF8.GetString(bytes);
\0\0�?\ac:\Temp\n\0\0\0
【问题讨论】:
-
@Mate 我试过了,结果不是我预期的。
标签: c# binaryreader