[英]How do I read the last “n” bytes of a file in Java
如何在不使用RandomAccessFile的情況下從文件中讀取最后n個字節數。
我的文件中的最后6個字節包含重寫文件時的重要信息。 我需要編寫原始文件,然后將最后6個字節附加到別處。
任何指導? 謝謝
您必須使用RandomAccessFile來完成此操作。
此類的實例支持讀取和寫入隨機訪問文件。 隨機訪問文件的行為類似於存儲在文件系統中的大量字節。
RandomAccessFile randomAccessFile = new RandomAccessFile(your_file, "r");
randomAccessFile.seek(your_file.length() - n);
randomAccessFile.read(byteArray, 0, n);
您可以通過擴展FilterOutputStream
來實現一個“裝飾”當前流的OutputStream
,以保留最后寫入的六個字節。 寫入完成后,查詢自定義裝飾器最后六個字節。
實現可以使用簡單的環形緩沖區來記錄所有單字節寫入,或者直到每個塊寫入的最后六個字節。
嘗試這個
FileInputStream fis = new FileInputStream(file);
fis.getChannel().position(fis.getChannel().size() - 6);
byte[] a= new byte[6];
fis.read(a);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.