我从while循环中的蓝牙读取bytes []来接收字节然后将它们写入输出文件,但是我看到每行都添加了一长串空值 为什么会这样?我该怎么解决?
byte[] buffer = new byte[1024];
String message;
try {
do {
input.read(buffer);
fil.write(buffer);
fil.flush();
}while(//some condition);
}
这段代码写在一个线程中。 输出文件: 值+"长字符串为空"
更新:写入文件的数据没有按照我发送的格式进行格式化,如何在发送时查看它们?
答案 0 :(得分:3)
您假设read(buffer);
始终读取1024
个字节,此时它将读取最多 1024个字节。它将返回读取的字节数,因此将代码更改为
int bytes = input.read(buffer);
fil.write(buffer, 0, bytes);
答案 1 :(得分:1)
你可以这样做:
int count;
while ((count = in.read(buffer)) > 0) {
fil.write(buffer , 0, count);
}