BURNMITE的博客

感觉来了就写一点东西

手机蓝牙传输图片很邪恶的一个点

本文很简短,,,真的很简短,,,
用手机写蓝牙程序,并且在手机之间用蓝牙传输图片,有时候图片传输到另外一个手机上面以后图片会失真,那么到底是哪里出了问题呢。
首先,绝大部分的代码都是一样的,无非就是普通的蓝牙操作,开启蓝牙,发现蓝牙,然后就变成了Java的Socket操作了,再后来就是获取输入输出流,进行数据的传输操作了,就在这里!!!出现了问题。
Look,这里是一段Java开发者熟悉的不能再熟悉的代码了,为发送端手机

//in是为了读取文件的
FileInputStream in = new FileInputStream(file);
int j = 0;
byte[] buffer = new byte[1024];
while ((j = in.read(buffer)) != -1) {
    //out是一个输出流,向接收端发送文件字节
    out.write(buffer, 0, j);
    out.flush();
}

代码非常简单,可是就是不能运行,检查了一遍又一遍,就是不能运行。
但是在一种情况下可以运行,就是在while循环里面设置一个断点,一直不停的按F6,直到循环结束,,,图片传输的结果居然是正确的,看来,这似乎和速度有关系,有必要强制降下来传输速度。
遂而,改一个地方。。。

FileInputStream in = new FileInputStream(file);
int j = 0;
/************************************/
byte[] buffer = new byte[512];
/************************************/
while ((j = in.read(buffer)) != -1) {
    //out是一个输出流,向接收端发送文件字节
    out.write(buffer, 0, j);
    out.flush();
}

居然成功了。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014713475/article/details/51549673
文章标签: 蓝牙 java
个人分类: Android
下一篇解析出一个网页中所有的图片
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭