java中如何传送大文件?

fdm_sea 2004-04-28 06:44:32
我现在知道怎么传文本文件和一些小的二进制文件,可以把它们放进一个byte []然后发送和接受.
可是如果文件大了要怎么半呢?比如一个10M的pdf,也放到一个byte [] 中?
请问大家这应该怎么做?

...全文
95 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rombus 2004-04-29
  • 打赏
  • 举报
回复
用流处理
wuyaxlz 2004-04-29
  • 打赏
  • 举报
回复
网上传用socket+流处理(暂时没有弄通)
caominfengok 2004-04-29
  • 打赏
  • 举报
回复
去下载一个上传的包吧,到处都是。
xfanghua 2004-04-29
  • 打赏
  • 举报
回复
都是高手啊!学习
Onega 2004-04-29
  • 打赏
  • 举报
回复
使用TCP协议,它会保证客户端能够接受所有的数据,如果客户端比较慢,它会阻塞sender.
TCP协议不会丢失数据
fantasyCoder 2004-04-28
  • 打赏
  • 举报
回复
用Socket
配合多线程,一般都要这么做
fdm_sea 2004-04-28
  • 打赏
  • 举报
回复
不是,我就想自己写一个小程序 :)
因为还算是初学者
追求自由 2004-04-28
  • 打赏
  • 举报
回复
或者用别人开发好的组件
追求自由 2004-04-28
  • 打赏
  • 举报
回复
网络上传?是要用socket呀
fdm_sea 2004-04-28
  • 打赏
  • 举报
回复
回Arias(永恒之道):
能不能将清楚一些,因为我现在只学了java.io包,还没有看java.nio.
谢谢
fdm_sea 2004-04-28
  • 打赏
  • 举报
回复
回Onega(www.fruitfruit.com)
谢谢,有几个问题不清楚,还望指教:
1.file_buff送出去之后,发送端会一直不停的读1024个字节然后不停的发,如果接收端还没有收到或处理完怎么办?

2.如果不是在本机上而是在网络较差的环境中,会不会丢失数据?用Socket编写是不是就可以避免这个问题?因为我听说socket使用的TCP协议,而TCP有自动检测功能会自动重发.

Arias 2004-04-28
  • 打赏
  • 举报
回复
用Buffer来处理!
Onega 2004-04-28
  • 打赏
  • 举报
回复
byte[] file_buf = new byte[1024];
FileInputStream fis =new FileInputStream(...);

int f_read =1;
while( f_read>0)
{
f_read = fis.read( file_buf, 0, 1024);
if( f_read>0)
{
// send out file_buf
}
}
fdm_sea 2004-04-28
  • 打赏
  • 举报
回复
sorry ,半字写错了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧