Java长字符串的空值

时间:2016-01-16 10:03:28

标签: java bluetooth null buffer

我从while循环中的蓝牙读取bytes []来接收字节然后将它们写入输出文件,但是我看到每行都添加了一长串空值 为什么会这样?我该怎么解决?

    byte[] buffer = new byte[1024];
    String message;
    try {
    do {
    input.read(buffer);
    fil.write(buffer);
    fil.flush();
    }while(//some condition);
    }

这段代码写在一个线程中。 输出文件: 值+"长字符串为空"

更新:写入文件的数据没有按照我发送的格式进行格式化,如何在发送时查看它们?

2 个答案:

答案 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);
    }