2013-12-18 102 views
0

不熟悉java IO。下面是一個問題:一個字節流,其中包含一系列介於-1和1之間的浮點數。應該如何讀取輸入?java讀取浮點數的字節流

我已經試過這樣:

BufferedReader br=new BufferedReader(new ByteInputStream(buf, length)); 

但得到的不知道。

謝謝。

+0

存儲在文本表示的數字(即0.24354)或二進制?使用哪種數字格式? – Henry

回答

2

你可以從這樣的緩衝區中讀取一個float:不需要

try(DataInputStream dis = new DataInputStream(new ByteArrayInputStream(buf, 0, len))){ 
    // ... 
    float v = dis.readFloat(); 
    // ... 
} 

BufferedReader,因爲這人會從緩衝區中讀取。

如果你的花車是從即C++應用程序來了,你可以閱讀整數和使用Float.intBitsToFloat()將它們轉換成Java浮動:Best way to serialize a Float in java to be read by C++ app?

+0

謝謝。 (DataInputStream dis = new DataInputStream(socket.getInputStream())){ // ... float v = dis.readFloat();如果輸入來自套接字客戶端,那麼該怎麼辦? // ... } – lulyon

+0

是的,這應該工作。 –

+0

謝謝,非常有幫助。 – lulyon