簡體   English   中英

將字節數組寫入文件並在Java中查看文件

[英]Writing a byte array to a file and looking at the file in java

我想將byte []數據寫入文件,發現以下代碼:

public static void writeByte(String filename, byte[] data){

    BufferedOutputStream bos = null;

    try
    {
    //create an object of FileOutputStream
    FileOutputStream fos = new FileOutputStream(new File(filename));

    //create an object of BufferedOutputStream
    bos = new BufferedOutputStream(fos);


    /*
    * To write byte array to file use,
    * public void write(byte[] b) method of BufferedOutputStream
    * class.
    */
    System.out.println("Writing byte array to file");

    bos.write(data);

    System.out.println("File written");
    }
    catch(Exception fnfe)
    {
    System.out.println("exception");
    }
 }

這似乎可行,但是我無法打開文件查看數據...它說“文件類型未知”。 寫入數據是因為文件大小為25.5KB。 我的問題是,如何查看內容? 有必須使用的擴展名嗎? 還是需要特殊的編輯器才能打開它? (嘗試geany和gedit ...)

嘗試flush(); close(); 向其寫入字節后的流。 如果您嘗試編寫一種已知的文件格式,則可能是問題所在:字節的最后一個緩沖區實際上未寫入文件,這導致文件“損壞”。

否則,請使用Richard建議的十六進制編輯器查看文件的原始字節。

使用十六進制文件編輯器查看內容。 如:

這些只是我使用的。 他們不一定是最好的十六進制編輯器。

您根本不需要在這里BufferedOutputStream ,但是您確實需要關閉正在使用的任何流。

而且,當您發現異常時,不要只是自己編寫郵件。 異常本身包含三個重要的信息:其類,其消息和其堆棧跟蹤。 相比之下,您自己的消息基本上包含一點信息:它發生了。 您應該始終記錄或打印實際的異常類及其消息,並且在調試困難的情況下也應記錄其堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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