我正在使用的協議要求將文件中的當前位置作爲「無符號,網絡字節順序的4字節整數」發回。有這個幾個問題,但他們假設我使用整數,而不是多頭使用ByteBuffer將long轉換爲「無符號,網絡字節順序的4字節整數」
我試圖端口這NIO的ByteBuffer的,因此它可以在插座通道發送:
long bytesTransfered = ... some number of bytes transfered...
//TODO: What does this actually do?
outBuffer[0] = (byte) ((bytesTransfered >> 24) & 0xff);
outBuffer[1] = (byte) ((bytesTransfered >> 16) & 0xff);
outBuffer[2] = (byte) ((bytesTransfered >> 8) & 0xff);
//TODO: Why does netbeans say this does nothing?
outBuffer[3] = (byte) ((bytesTransfered >> 0) & 0xff);
是他們的任何方法在ByteBuffer中完成了這個?希望以更明顯,自我描述的方式,然後上面的變化魔術?
如果你使用'long'爲什麼你只需要4個字節?相反,如果你只需要4個字節,堅持'long'是毫無意義的。 – EJP