我有一個包含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. 從特定位置讀取C#中的二進制文件
- 2. 在wixproj文件中設置二進制文件的位置
- 3. python從特定位置讀取二進制文件
- 4. 以二進制跳轉段
- 5. 獲取二進制文件中的特定操作碼的準確位置
- 6. 如何跳過TeamCity工件配置中的二進制文件
- 7. 仿真二進制文件位置
- 8. Cmake:當位置不存在時,使用add_custom_command將二進制文件複製到特定位置失敗
- 9. 如何從特定的目標文件製作特定的二進制文件?
- 10. 在GCC調試二進制文件中的源代碼位置
- 11. 轉換爲位置符號二進制
- 12. 將二進制文件複製到C++中的遠程位置
- 13. Apache設置特定的PHP二進制文件
- 14. 如何指定chromedriver二進制文件的位置
- 15. 在Perl中將位向量轉換爲二進制文件
- 16. 在ELF或二進制文件中有特定ABI的簽名?
- 17. 二進制到Java中的十進制轉換(跳出循環)
- 18. 如何將二進制數據附加到XML文件中特定位置的特定節點
- 19. 從二進制文件(java)中設置位置讀取
- 20. ASM:向x86-64二進制文件寫入跳轉命令
- 21. 在Windows中定位Python二進制位置(Tensorflow)
- 22. 如何在二進制文件中保留特定符號?
- 23. 如何在另一個二進制文件中定義二進制文件?
- 24. 如何讀取服務器中的二進制文件位置?
- 25. 在與二進制文件不同的位置訪問App.config
- 26. 在Perl中將十六進制轉換爲二進制文件
- 27. 在Linux上旋轉二進制文件
- 28. 如何在IA32或x86 ISA中設置二進制數的特定位?
- 29. 尋找二進制文件中的特定基元
- 30. 如何從二進制文件中刪除特定的行?
你可以刪除部分代碼爲你的第一句話?這樣,你的問題會更容易閱讀。 – 2010-09-02 06:46:44