【发布时间】:2020-12-31 23:51:21
【问题描述】:
我正在尝试使用 BinaryReady 读取 DAT 文件,但出现异常并且不明白为什么。 “无法阅读超出流的末尾”是我得到的消息。我的代码如下所示:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog OpenFileDialog = new OpenFileDialog();
OpenFileDialog.Title = "Open File...";
OpenFileDialog.Filter = "Binary File (*.dat)|*.dat";
OpenFileDialog.InitialDirectory = @"C:\";
if (OpenFileDialog.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(OpenFileDialog.FileName, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
label1.Text = br.ReadString();
label2.Text = br.ReadInt32().ToString();
fs.Close();
br.Close();
}
我有一个包含大量信息的 DAT 文件,并希望能够将其读出,甚至可以将其放在表格中并绘制数据。但是我使用 C# 已经有一段时间了。因此,如果有人可以帮助我,我将不胜感激
【问题讨论】:
-
哪一行抛出异常? (PS 从逻辑上讲,您应该在关闭流之前关闭阅读器。)
-
P.P.S.由于我们不知道文件格式或它是如何创建的,因此任何人都很难具体说明您应该做什么,或者您是否可以让它工作。如果您提供更多详细信息,也许我们可以提供更好的帮助。
-
错误出现在'label1.text = br.ReadString();'
-
你正在读取的文件是二进制文件还是文本文件?我不确定
ReadString()是如何实现的,但是如果我看到一个二进制阅读器读取一个字符串,我会假设它会继续读取,直到找到一个 00 字节。您能否提供您尝试读取的文件的内容,或者至少提供超过 Int32 的内容?
标签: c# binaryfiles