Q
緩衝區和字節?
0
A
回答
2
緩衝區是在那裏它被處理之前的數據臨時存儲在內存中的空間。請參閱Wiki article
下面介紹如何使用ByteBuffer類的簡單Java example。
更新
public static void main(String[] args) throws IOException
{
// reads in bytes from a file (args[0]) into input stream (inFile)
FileInputStream inFile = new FileInputStream(args[0]);
// creates an output stream (outFile) to write bytes to.
FileOutputStream outFile = new FileOutputStream(args[1]);
// get the unique channel object of the input file
FileChannel inChannel = inFile.getChannel();
// get the unique channel object of the output file.
FileChannel outChannel = outFile.getChannel();
/* create a new byte buffer and pre-allocate 1MB of space in memory
and continue to read 1mb of data from the file into the buffer until
the entire file has been read. */
for (ByteBuffer buffer = ByteBuffer.allocate(1024*1024); inChannel.read(buffer) != 1; buffer.clear())
{
// set the starting position of the buffer to be the current position (1Mb of data in from the last position)
buffer.flip();
// write the data from the buffer into the output stream
while (buffer.hasRemaining()) outChannel.write(buffer);
}
// close the file streams.
inChannel.close();
outChannel.close();
}
希望掃清事情了一點。
1
對於緩衝區,人們通常意味着要臨時存儲一些數據的一些內存塊。緩衝區的一個主要用途是在I/O操作中。
像硬盤這樣的設備擅長快速讀取或寫入磁盤上的連續位塊。如果您告訴硬盤「讀取這10,000個字節並將其放入內存中」,則可以非常快速地讀取大量數據。如果你要編程一個循環並逐個獲取字節,告訴硬盤每次獲得一個字節,這將是非常低效和緩慢的。
因此,您創建一個10,000字節的緩衝區,告訴硬盤一次讀取所有字節,然後從內存緩衝區中逐個處理這些10,000字節。
0
上的I/O的Sun Java教程節介紹了此話題:
http://java.sun.com/docs/books/tutorial/essential/io/index.html
相關問題
- 1. requirejs和字節緩衝區
- 2. 字節緩衝區,字符緩衝區,字符串和字符集
- 3. 解碼字節緩衝區,
- 4. 32字節空緩衝區
- 5. Java NIO管道和字節緩衝區
- 6. Java字節緩衝區覆蓋字節
- 7. 字節緩衝區開關字節序
- 8. 字節緩衝區,字符串
- 9. C++套接字256字節緩衝區
- 10. 字節緩衝區爲字符串GWT
- 11. 使用編年史圖和字節[]或字節緩衝區
- 12. 套接字和緩衝區
- 13. 將字節從一個字節緩衝區傳輸到另一個字節緩衝區
- 14. 字符和字節緩衝區編碼和解碼
- 15. Parquet Writer緩衝區或字節流
- 16. 將字節[]緩衝區重置爲零?
- 17. 的Java字節緩衝區爲String
- 18. 發送原始字節緩衝區後
- 19. Howto創建100M字節緩衝區
- 20. 字節緩衝區getInt()問題
- 21. 的NullPointerException在字節緩衝區
- 22. PHP中的字節緩衝區?
- 23. allocate_shared與附加的字節緩衝區
- 24. 字節緩衝區的等於
- 25. 字節緩衝區爲String在Java中
- 26. Java中的字節緩衝區?
- 27. 獲取的Java字節緩衝區內從字節低和高次半字節
- 28. 字節緩衝NSData
- 29. 字節/字符緩衝區長和/或雙重
- 30. 的Java字節緩衝區「放」的方法 - 防止緩衝區溢出
我認爲你需要更具體。到目前爲止,這似乎並不特定於Java - 除非您指的是java.nio.ByteBuffer?你有什麼特別的想法,你遇到了什麼問題? – 2009-08-28 10:56:31