A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhkqy 中级黑马   /  2013-12-10 19:45  /  878 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我写了一个传输文件夹的程序,使用一个流来传输文件夹中的多个文件和子文件夹,在每个文件和文件夹发送之前先发送即将发送的文件类型(文件或文件夹),以及文件名(使用DataOutputStream中的WriteUTF()来发送),之后如果是文件的话,再发送这个文件具体内容。

在接收端,使用DataInputStream的ReadUTF()方法来接收文件类型和文件名,如果的文件的话,就接收文件的具体内容。

然后遇到了一个头疼问题:由于是一个来传输多个文件的,因此流中存在多个EOF标志,ReadUTF()方法去读文件类型和文件名时,老是抛出EOFException异常,无法跳过流中的EOF标志。请问怎样才能处理此问题?

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

1 个回复

倒序浏览
不知道楼主是怎么实现的,为什么没有附上你的源码。
我想一下思路吧,我也没写过这样的源码。
你要传送一个文件夹里所有的东西,就是建立连接后,这边不断的发送数据,那边不断的接收数据啊。
遍历本地文件夹,先发送一个,等那边接收成功返回成功标记后再发下一个,至于是文件夹还是文件,你可以把文件名称后面加一个路径分隔符做以区分,那边处理。发送文件时,先发送文件名称信息,再随后发送文件相同大小的字节数组数据吖。不知道对不,还是楼主上源码大家分析吧。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马