2016-01-16 30 views
2

我從while循環中的藍牙讀取字節[]以接收字節,然後將它們寫入輸出文件,但是我看到爲每行添加了一長串空值 爲什麼會發生這種情況?我怎麼解決這個問題?Java長串空值

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

此代碼寫入線程內部。 輸出文件: value +「long string of null」

更新:寫入文件的數據沒有格式化,因爲我發送它們,我如何查看它們,因爲它們被髮送?

回答

3

你假設read(buffer);總是讀取1024字節,當它將讀取高達 1024字節。它會返回讀取的字節數,所以更改您的代碼

int bytes = input.read(buffer); 
fil.write(buffer, 0, bytes); 
+1

謝謝你,這個作品! – Hesham

1

你可以做財產以後這樣的:

int count; 
    while ((count = in.read(buffer)) > 0) { 
     fil.write(buffer , 0, count); 
    }