【发布时间】:2014-05-26 22:26:07
【问题描述】:
我使用下面的代码将任何文件转换为字节数组,然后在数组偏移中搜索后将其转换为另一个字节数组。
如何使用加速将文件读取到字节数组来优化/更快地优化我的代码,在这个 while 循环中。如果我搜索偏移量包含的内容,如何创建多字节数组??
例如:
我打开的文件完全加载到 内存 加载大文件 +50MB 时使用缓冲区很好??或者我可以搜索其他内容。
另一件事:帮助在while循环中创建if语句以搜索ex的偏移量100是否包含字节“00110011” 如果是 >> 将偏移量复制到其他字节数组 这是代码
System.IO.FileStream fs = new System.IO.FileStream(openFileDialog1.FileName, System.IO.FileMode.Open);
byte[] buf = new byte[102400];
int bytesRead;
// Read the file 100Kb at a time.
do
{
bytesRead = fs.Read(buf, 0, 102400);
string s = string.Join(" ", buf.Select(x => Convert.ToString(x, 2).PadLeft(8, '0')));
MessageBox.Show("OK", "OK", MessageBoxButtons.OK);
textBox1.Text = textBox1.Text + s;
}
while (bytesRead == 102400);
fs.Close();
【问题讨论】:
-
为什么你认为这段代码需要变得不安全?你剖析过吗?此外,您还需要首先修复许多其他错误,例如,如果您读取的文件不是 1048576 字节的倍数,那么您输出的最后一个二进制字符串将用 0 填充以使其大小为 1048576 字节,因为您正在转换整个数组,而不仅仅是从硬盘读取的数量。
-
您好,实际上我需要将此字节数组转换为字符串。我需要再次将字符串转换为另一个数组..问题是我当我转换为字符串并将其显示在文本框中..这需要很长时间..我需要的是使字符串转换更加优化
-
请详细说明by editing your question你真正想要完成的事情。你陷入了XY Problem,不要问如何解决你遇到的问题,而要问你遇到的问题本身。
-
感谢斯科特帮助我。那么有什么比每次读取 1048576 字节 1MB 更好的方法呢??
-
萨米,不要私信联系个人; edit your question,就像 Scott 要求的那样。