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

本文很简短,,,真的很简短,,,
用手机写蓝牙程序,并且在手机之间用蓝牙传输图片,有时候图片传输到另外一个手机上面以后图片会失真,那么到底是哪里出了问题呢。
首先,绝大部分的代码都是一样的,无非就是普通的蓝牙操作,开启蓝牙,发现蓝牙,然后就变成了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();
}

居然成功了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值