使用ByteBuffer
類可以將強類型數據轉換爲字節嗎?如果不是,它的主要目的是什麼?如果是的話,我在看its documentation,並且什麼也找不到。 put
方法需要一個字節,而不是一個整數的例子。是否可以使用ByteBuffer類將強類型數據轉換爲字節?
回答
呃,你的意思是像...
String foo = "My String";
ByteBuffer myBuffer = ByteBuffer.wrap(foo.getBytes());
編輯:對於int
你可以做...
int i = 1234;
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(i);
嗯,你可以,如果他們實現serializable
序列化你的對象並且如果你真的想將序列化的字節存儲在ByteBuffer
中。
ByteBuffer的主要目的似乎是緩衝字節,以便異步傳輸可以加快。
它似乎是你正在考慮獲取對象所在的RAM塊並將該塊放入ByteBuffer中。這不起作用。我的意思是,你可以做到這一點,但祝你好運,讓對象回到可用狀態。你必須對它做些工作,比如把指針變成有意義的新地址(指的是存儲對象的實際字段的地方或什麼)。這是序列化,這就是serializable
所做的。
謝謝..但是我試圖使用「serializable」以外的內容。 – darksky
正如你可能知道的那樣,在計算機編程中,大部分數據以某種方式存儲在較低級別的字節格式中。
字節緩衝區=方便的讀/「所有」數據類型/從一個字節表示的寫:
ByteBuffer是一個很方便的類,以字節轉換從類型「像詮釋」以字節表示。但也是相反的。您可以使用讀取方法從字節表示中讀取「類型」。
關於你的問題:有一個通用的put方法接受一個字節。但也有很多方便的方法把和讀取大部分標準數據類型,也INT(爲你問):
http://download.oracle.com/javase/1,5.0/docs/api/java/nio/ByteBuffer.html#putInt(int)
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.putInt(4);
byteBuffer.get() => gets the byte representation of the Int you put in
實際使用案例:
要誠實,對我而言,使用最重的ByteBuffer與Cassandra NoSQL DB是一致的。它們將所有數據存儲爲字節(數組),並且ByteBuffer是一個方便的類,可幫助您讀取和寫入這些數據。
高端應用:
正如你所看到的類是在NIO包。我認爲ByteBuffer的起源是非常有效地將數據寫入磁盤。它不會將它寫入內存之前,而是直接將磁盤上「塊」的區域映射到java中的緩衝區。所以它避免了讀取和寫入數據到磁盤的任何中間步驟。但這是非常高的使用...
- 1. 是否可以將字符串轉換爲List數據類型?
- 2. 是否可以使用朋友函數將類型轉換爲基本類型?
- 3. 是否可以將類型轉換爲父類抽象類?
- 4. 將字符類型轉換爲整數類型是否安全
- 5. 是否可以爲類型的賦值添加類型轉換?
- 6. 是否可以將LLVM字節碼轉換爲Java字節碼?
- 7. 將數據類型TYPE_4BYTE_ABGR的字節數組轉換爲BufferedImage
- 8. PHP - 是否可以從字符串的值轉換爲類型?
- 9. 轉換字節數組爲java類型
- 10. 在泛型類中將字符串強制轉換爲數字
- 11. 將底層類型的任意值強制轉換爲強類型的枚舉類型是否安全?
- 12. 將NSString強制轉換爲UIButton類型
- 13. 將字節轉換爲實際字節類型的字符串
- 14. 轉換類型INT到類型字節
- 15. 是否可以使用屬性作爲數據類型?
- 16. 是否可以使用XML數據類型作爲DataTable?
- 17. 是否可以將字符串轉換爲我自己的類型?
- 18. 是否可以使用SYB來轉換類型?
- 19. 如何將數據類型轉換爲可讀的字符串
- 20. 字節類型轉換
- 21. 使用轉換將數據類型varchar轉換爲數字時出錯
- 22. 轉換JSON數據強類型視圖
- 23. 是否可以將python中的數字整數轉換爲1字節字符
- 24. 將空JSON數組強制轉換爲字典類型
- 25. 如何將數據集轉換爲強類型對象?
- 26. 將XML數據轉換爲強大的Flex類型
- 27. 可以將`Either`類型轉換爲`Task`類型嗎?
- 28. 如何從ByteBuffer轉換爲Avro字節?
- 29. 將不同值類型的數組轉換爲字節數組
- 30. 是否可以強制參數成爲某種類型的鍵?
你還沒有描述你真的想*做*。在應用程序中「將強類型數據轉換爲字節」意味着什麼? –