我有一個包含image.i的二進制文件,它必須在文件中的不同位置上跳轉以讀取圖像文件。到目前爲止,我正在使用標記和重置方法,但這些並沒有幫助我,因爲我想。 請有人幫我介紹一下,我會非常感謝。而且我使用輸入流來讀取文件。在二進制文件中的特定位置跳轉
回答
您可以使用java.io.RandomAccessFile來做到這一點。該方法seek(long)和getFilePointer()將有助於跳轉到不同的偏移量在文件中,並回到原來的偏移:
RandomAccessFile f = new RandomAccessFile("/my/image/file", "rw");
// read some data.
long positionToJump = 10L;
long origPos = f.getFilePointer(); // store the original position
f.seek(positionToJump);
// now you are at position 10, start reading from here.
// go back to original position
f.seek(origPos);
Android似乎有RandomAccessFile,你試過了嗎?
我可以在輸入流中使用它嗎? – sajjoo 2010-09-02 06:49:55
如果你已經有FileInputStream(不是通用的InputStream!),你可以使用getChannel()方法來獲得FileChannel。但是打開新的RandomAccessFile更簡單。 – 2010-09-02 06:51:45
@sajjoo - ['FileInputStream'](http://download-llnw.oracle.com/javase/6/docs/api/index.html?java/lang/String.html)提供了一個'getChannel()'方法。 – 2010-09-02 07:03:25
由於Java 7,您可以使用java.nio.file.Files
和SeekableByteChannel
byte[] getRandomAccessResults(Path filePath, long offset) throws IOException
{
try (SeekableByteChannel byte_channel = java.nio.file.Files.newByteChannel(filePath, StandardOpenOption.READ))
{
ByteBuffer byte_buffer = ByteBuffer.allocate(128);
byte_channel.position(offset);
byte_channel.read(byte_buffer);
return byte_buffer.array();
}
}
- 1. python從特定位置讀取二進制文件
- 2. 如何跳過TeamCity工件配置中的二進制文件
- 3. Cmake:當位置不存在時,使用add_custom_command將二進制文件複製到特定位置失敗
- 4. 如何從特定的目標文件製作特定的二進制文件?
- 5. 轉換爲位置符號二進制
- 6. 在GCC調試二進制文件中的源代碼位置
- 7. 在ELF或二進制文件中有特定ABI的簽名?
- 8. 如何將二進制數據附加到XML文件中特定位置的特定節點
- 9. 從二進制文件(java)中設置位置讀取
- 10. ASM:向x86-64二進制文件寫入跳轉命令
- 11. 如何在另一個二進制文件中定義二進制文件?
- 12. 在與二進制文件不同的位置訪問App.config
- 13. 在Linux上旋轉二進制文件
- 14. 如何在IA32或x86 ISA中設置二進制數的特定位?
- 15. 循環遍歷二進制文件中的特定字節
- 16. 如何從二進制文件中刪除特定的行?
- 17. 3GS特定二進制
- 18. 在大文件中將十六進制轉換爲二進制文件
- 19. 將二進制文件轉換爲C中的文本文件
- 20. fs.createReadStream()在文件的特定位置
- 21. 二進制文件特殊字符
- 22. 二進制文件位操作
- 23. 將索引移動到二進制文件的不同位置
- 24. 定位在特定的文件夾中的特定文件c#
- 25. 4位十進制到16位二進制轉換代碼
- 26. 將二進制IOstream轉換爲文件
- 27. Java文件到二進制轉換
- 28. 轉換字符爲二進制文件
- 29. 控制jquery驗證「跳轉」位置
- 30. 嘗試將二進制文件部署到已存儲其他二進制文件的位置現有二進制文件
你可以刪除部分代碼爲你的第一句話?這樣,你的問題會更容易閱讀。 – 2010-09-02 06:46:44