[毕业设计-基于android的手机网盘的设计与实现] java中文件的socket传输问题

上传端:
			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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值