VB.NET的二进制文件读写为什么这么慢?比C++的慢慢N倍啊

我事先用C++写了个文件加密的内核。配上vb6的外壳。
加密一个30兆的文件才要2秒都不到
现在用vb.NET直接编写界面和内核。用二进制读写文件。
发现加密一个800K的图片,最精简SB的算法也要花个快1分钟。
我想请问大家怎么会这么慢的。有没有什么好办法解决。
VB.NET的效率就这么低吗....
实在不行我只好用C++写内核了。
下面是我的主要代码:
VB.NET是这样写的:

fileopen(1,路径1,openmode.binary)
fileopen(2,路径2,openmode.binary)
do
fileget(1,b)
……
fileput(2,b)
loop until eof(1)

C++是这样写的:

in=fopen(路径1,"rb");
out=fopen(路径2,"wb");
while (1)
{
c=fgetc(in);
if(feof(in))break;
……
fputc(c,out);
}

这个是你的问题,不是vb.net速度慢。
你应该这样写:
Dim file1 As FileStream = New FileStream("地址", FileMode.Open)
Dim myread As BinaryReader = New BinaryReader(file1)
Dim fn(file1.Length) As Byte
For i As Integer = 0 To file1.Length - 1
fn(i) = myread.ReadByte

Next

记得前面要 imports system.io
这个代码把文件读入一个fn的数组中,速度极快。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-18
正常
第2个回答  2008-03-19
差别没这么离谱的吧,肯定是你什么地方弄错了
第3个回答  2008-03-19
我也觉得肯定是你什么地方弄错了,慢是会慢一点,但不至于这么离谱的。把主要代码贴出来大家分析一下?
相似回答