哪有这样一次读取那么大的数据的,文件4G你一次就申请4G内存buff来装?更何况32位系统无法申请到4G内存。
读取大文件都应该分块来读取,特别是网络传输,例如一次读取个50M处理50M,然后反复直到读完
读取大文件都应该分块来读取,特别是网络传输,例如一次读取个50M处理50M,然后反复直到读完
解决方案 »
- TSocketConnection 的连接数
- 存储过程 超时过期问题
- 请问高手:我怎么才能记住Coolbar的位置和设置情况,在下次登陆的时候,直接使用上次的设置呢??
- 请教高手关于SQL在Delphi中如何显示的问题
- 请高手指点一下!!!!!
- rave做的报表如何能让最终用户也能修改,谢谢
- 哪位大哥会呀,一个没解决的问题。。。
- 制作安装程序后为什么不能在2000下运行(在选择是已经是所有系统都支持)
- 一个关于
- 分布式应用,delphi和java那个更有前途?我认为是java!对java中间件的开发,那位大虾能发表一下看法。
- Delphi 7制作登录窗口的问题
- 不知道为啥,delphi点F9运行就出错
我用的indy 10var
iFileHandle: integer;
iFileLen, cnt: Int64;
buf: array[0..4096] of byte;
...........
iFileHandle := FileOpen(edtFileName.Text, fmOpenRead);
iFileLen := FileSeek(iFileHandle, 0, 2);
FileSeek(iFileHandle, 0, 0); cnt := FileRead(iFileHandle, buf, 4096);问题出在这里 >2G文件 buf全为0 <2G则正常 IdTCPClient1.IOHandler.Write(RawToBytes(buf,sizeof(buf)),cnt);问题出在 FileRead 现在我的代码传输<2GB文件没有问题