android开发,socket发送文件,read阻塞,得不到文件尾-1
这是我的接收文件代码:开始可以读取到-1,但是现在又读取不到了,所以才加上红色字解决的(注释的代码)
File file = new File(mfilePath,"chetou."+entity.mediaType);
if(!file.exists())
file.createNewFile();
FileOutputStream fos =new FileOutputStream(file); //将接收的文件保存到对应的路径
byte[] sendBytes =new byte[1024];
int transLen =0;
Log.v(TAG, "----开始接收文件<" + entity.params +">,文件大小为<" + fileLength +">----");
while(true){
int read =0;
read = dis.read(sendBytes);
Log.v(TAG, "read="+read);
if(read == -1)
break;
transLen += read;
Log.v(TAG, "接收文件进度" +100 * transLen/fileLength +"%...");
fos.write(sendBytes,0, read);
fos.flush();
/*if(transLen==fileLength)
break;*/
}
Log.v(TAG, "----接收文件<" + entity.params +">成功-------1");
entity.filePath = mfilePath+"/chetou."+entity.mediaType; //将下载下来的文件名字赋值给entity.filePath
Log.v(TAG, "----接收文件<" + entity.params +">成功-------2");
发送文件的代码:
//传输文件
FileInputStream fis =new FileInputStream(file);
byte[] sendBytes =new byte[1024];
int length =0;
while((length = fis.read(sendBytes,0, sendBytes.length)) >0){
dos.write(sendBytes,0, length);
dos.flush();
}
fis.close();
Log.v(TAG, "发送完文件数据");
android开发,socket发送文件,read阻塞,得不到文件尾-1的更多相关文章
- android 开发 socket发送会有部分乱码,串码,伴随着数据接收不完整
场景: 客户端A.B,A向B发送json字符串后紧接着发送文件,B接收到文件后才返回消息. 环境:android.使用的是原始的write 和read (若使用的是writeUTF不会出现此问题.)需 ...
- android开发 socket接收图片并保存
逻辑:接收到socket之后需要将socket发送的图片数据保存下来并通知handler更新界面 关键代码: public void readImage(Socket socket) { try { ...
- Android开发--Socket通信
一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时 ...
- ANDROID开发中注意不同手机CPU架构对SO文件的不同需求。
如果没有对应于手机的SO文件,那么在调用第三方SDK时,会经常发生莫明其妙的错误.所以了解你调式或开发的目的手机CPU架构是很有必要的.
- Android开发之发送短信
本实例通过SmsManager的sendTextMessage方法实现发送短信关于SmsManager的具体解释大家能够參照:Android开发之SmsManager具体解释 实例执行效果图: 程序代 ...
- Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题. ...
- Android开发心得-使用File ExPlorer无法访问系统内部文件
问题:本机在获得ROOT权限后,使用Eclipse自带的File Explorer访问/data/data下各APP的存储文件,均无法打开.更换另外一个设备后,情况正常.Sumsung的有些机型在获得 ...
- Android开发网上的一些重要知识点[经验分享]
1. android单实例运行方法 我们都知道Android平台没有任务管理器,而内部App维护者一个Activity history stack来实现窗口显示和销毁,对于常规从快捷方式运行来看都是s ...
- 【转】Android开发笔记(序)写在前面的目录
原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...
- 第二章:搭建Android开发环境
通过对本章节内容的阅读,了解了Android底层开发所需要的各种开发工具,以及在Linux环境下怎样搭建Android底层开发环境,在Linux系统上开发Android应用程序,需要安装Linux版本 ...
随机推荐
- Windowsphone本地应用信息与市场信息的获取
本地信息都存放在 WMAppManifest 里面,获取就不用说了...知道位置 就知道怎么获取了.. 主要是讲那个 市场上面的详情怎么获取,就是API调用显示在这个页面里面的详情: public v ...
- Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度
Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度 硬件平台: Raspberry Pi B+ 软件平台: Raspberry 系统与前期安装请参见:树莓派(Ros ...
- POJ C++程序设计 编程题#3 编程作业—多态与虚函数
编程题 #3 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面的程序输出 ...
- C#winform初试报表
步骤1.新建一个窗口,拖一个ReportViewer控件上去,设置该控件的Dock为Fill. 步骤2.添加一个报表文件,如:Report1.rdlc,设置其中的参数,这里设置的参数和下面的代码里面的 ...
- FileSystemWatcher用法详解
FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删除.改动.重命名等活动.可以动态地定义需要监控的文件类型及文件属性改动的类型. 1.常用的几个基本属性: (1) P ...
- nginx 解决400 bad request 的方法(转载)
nginx的400错误比较难查找原因,因为此错误并不是每次都会出现的,另外,出现错误的时候,通常在浏览器和日志里看不到任何有关提示. 经长时间观察和大量试验查明,此乃request header过大所 ...
- 通过URLHttpConnection方式来取得图片,并且显示在ImageView上
界面: 代码xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...
- 【译】Spark官方文档——编程指南
本文翻自官方博客,略有添加:https://github.com/mesos/spark/wiki/Spark-Programming-Guide Spark发指南 从高的面看,其实每一个Spark的 ...
- 八数码难题 (codevs 1225)题解
[问题描述] 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局( ...
- Oracle redo 日志切换时间频率
DB: 11.2.0.3.0 查看Oracle的redo日志切换频率 两条SQL,原理是一样的,第二个用到了统计函数 时间单位:分钟 方法一. select * from v$log a where ...