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

来源:互联网 发布:java运行机制 编辑:程序博客网 时间:2024/05/17 20:32

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

居然成功了。

0 0