簡體   English   中英

如何讀取Java中文件的最后“n”個字節

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM