[毕业设计-基于android的手机网盘的设计与实现] java中文件的socket传输问题
16lz
2021-01-26
上传端:while ((length = fis.read(xml, 0, xml.length)) > 0) { sumL += length; // System.out.println("已传输:"+((sumL/l)*100)+"%"); os.write(xml, 0, length); os.flush(); }
下载端:
File file = new File("F:/Cloud Disk/"+name);FileOutputStream fos = new FileOutputStream(file); while ((length = is.read(bt, 0, bt.length)) > 0) { fos.write(bt, 0, length); fos.flush(); }
通过read的返回值返回的长度,决定fos往文件里写入的长度,每执行过一次read,指针是会自动向后移动的,利用大小合适的字节数组bt,利用while循环一次次的读取是最为合适的,而不应该像我以前想象的用一个大字节数组一口气传过来,唉,毕竟naive,太年轻,少年郎~~
多总结,以后会进步的。目前的问题就在于如何解决filechooser。
话说我又发现可以在发送文件本体之前发送一行以\n结尾的文件名。
在接受端可以先readline,获取文件名,再依据文件名创建文件,传送文件实体。
我真是越来越6了。233333
更多相关文章
- Android(安卓)HDecoration项目so库导出和调用
- Android经常使用UI组件 - TextView
- Tinker热修复简单接入
- Android(安卓)XMl文件存储及其解析
- 如何在xml中直接添加view点击监听(参考rayleung博客)
- Android实现侧滑菜单
- android keystore文件转换格式为pk8和x509.pem
- Android(安卓)一次启动多个Activity (TaskStackBuilder)
- Android常见UI组件之ListView(二)——定制ListView