问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java使用socket文件上传

发布网友 发布时间:2022-04-22 20:21

我来回答

4个回答

热心网友 时间:2022-05-01 20:47

for(int size=0;size!=-1;size=fis.read(buf)){
output.write(buf,0,size);
output.flush();
}
for(int size=0;size!=-1;size=fis.read(buf))
在buf中读取字节;当buf没有内容了,返回的-1;在这个之前,一直在循环;
output.write(buf,0,size);
output.flush();
把buf中道0开始到size个字节的内容写入输出流缓冲中
并用 flush()确认发送到输出流中了;
我的意见是output.write(buf,0,size);
改为output.write(buf);
你接受数据部分代码怎么写的,是不是size等于一个大于1024的整数了而出错追问你能不能帮我写一个用socket实现文件上传下载的功能啊.要求服务器能解析客户端发送的消息,客户端能解析服务器反馈过来的消息.

追答public void sendFile(File file)
{
byte[] buf=new byte[1024];
DataOutputStream dos=new DataOutputStream(os);
try {
FileInputStream fis=new FileInputStream(file);
while(fis.available()>1024)
{
fis.read(buf);
dos.write(buf);
dos.flush();
}
int remain=-1;
while((remain=fis.read())!=-1)
{
dos.write(remain);

}
dos.flush();

} catch (Exception e) {
notif("断开连接");

}

}
public void gotFile(String path)
{
File file=new File(path);
boolean yes=false;

try {
yes=file.createNewFile();
if(yes)
{ byte[] buff=new byte[1024];
DataInputStream dis=new DataInputStream(is);
FileOutputStream fos=new FileOutputStream(file);
while(dis.available()>1024)
{
dis.read(buff);
fos.write(buff);
fos.flush();

}
int remain=-1;
while((remain=dis.read())!=-1)
{
fos.write(remain);

}
fos.flush();
fos.close();
}else
{
notif("有重名");
}
} catch (Exception e) {
notif("断开连接");

}

}
}

太长了放下代码

热心网友 时间:2022-05-01 22:05

for(int size=0;size!=-1;size=fis.read(buf)){
output.write(buf,0,size);
output.flush();
}
问题应该是这段代码应该有点问题,意图应该是如果读取文件时未读取到数据,则不需要向输出流中写入内容!可以使用
int size =0 ;
size = fis.read(buf)) ;
if(size!=-1){
output.write(buf,0,size) ;
output.flush() ;
}
试试吧

热心网友 时间:2022-05-01 23:40

那异常我怀疑是防火墙拦截的问题,下面的就是把数据拆分成byte数组,按数组大小一点点发追问应该不是防火墙吧.for(int size=0;size!=-1;size=fis.read(buf)){
output.write(buf,0,size);
output.flush();
}
运行到这里的时候循环了3次,到第四次才报错

热心网友 时间:2022-05-02 01:31

while((size=fis.read(buf))!=-1){
output.write(buf,0,size);
}
output.flush();

最后填充,你第一次就浪费一次循环。
或者
for(int size=0;(size=fis.read(buf))!=-1;size=fis.read(buf)){
output.write(buf,0,size);
}
output.flush();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 为什么对方网易云音乐听歌排行突然出现新歌,突然又消失 毛呢子搭配裙子怎么搭配合理好看? java socket局域网传输文件丢包严重 JAVA socket传输二进制文件问题 我和朋友一起用网易云音乐一起听歌,我不小心把他的歌单弄没了,还能找... 请问各位,如何用JAVA的socket技术进行文件和图片的传输? 找回网易云音乐中我喜欢的歌曲? java 使用ServerSocket和Socket实现文件传输。 为什么网易云音乐歌单里的有些歌曲会消失了? JAVA怎么通过socket传输各种类型文件 网易云音乐,我喜欢的音乐列表 全部删除了,有没有办法恢复啊? 怎么用java的socket进行文件传输?谁能给个简单的例子,包括发送端和接收端。 关于用JAVA的SOCKET传输文件 怎么我的网易云音乐里的歌单突然就没了? 用java socket实现一个服务器对多个客户端的文件传输 为什么网易云很多歌手喜欢的歌都删了 在JAVA的socket中进行传输对象和文件 java中怎么用socket 一次传多个文件啊? java socket传送文件 驰球保险柜故障分析:保险柜怎么一直总是有“咚”的声音? 女生冬天该如何穿或搭配裙子? 网易云音乐登陆后,原来收藏那些歌全没了。只好又退出登陆!!难道不是应 ... java中,利用socket传送大文件,中途停止问题 女士藏青色的体恤搭配什么裙子好看图片 网易云莫名其妙偷偷自动取消喜欢有版权的歌,是什么原因,怎么解决? 办理中行国内商业票据贴现需要哪些材料? java socket传输对象流和文件流的问题 网易云卸载后在登陆喜欢的歌还有吗? java socket传送文件怎么设置传送速度,比如一个文件100M,每次传送1024BYTE? 小西装搭配裙子的图片?小西装搭配裙子好看吗? 商业票据贴现与银行贷款的主要区别 java socket编程,客户端发送文件给服务器,服务器接收到文件后如何返回确认信息告诉客户端文件已接收 裙子比大衣长好看吗 冬季大衣配什么裙子好看 为什么网易云音乐喜欢的歌和歌单都在手机里无法显示,另一部手机却看得... 商票保贴和商票贴现的区别是什么? 女生胯大适合穿什么样式的裙子? 五十岁女人选裙子有讲究,西班牙王后这样穿,优雅气质,她是怎样搭配的呢? 不带息商业汇票贴现是什么? 女生裙子图片,女生裙子如何搭配,女生裙子 商业承兑汇票怎的贴现期限是多少?贴现率是多少?