为什么程序不在Text.txt中返回二进制数,因为它从Image.jpeg复制二进制数

时间:2014-07-03 13:54:10

标签: java

以二进制格式读取操作读取源,但写入操作不以这种方式写入。

try
{
    FileInputStream fr=new FileInputStream("Image.jpeg");
    FileOutputStream fr1=new FileOutputStream("Text.txt");
    int temp=0;
    while((temp=fr.read())!=-1)
    {                       
        fr1.write(temp);                        
    }
    fr1.close();
    fr.close();             
}
catch(Exception e)
{
    System.out.println(e);
}

1 个答案:

答案 0 :(得分:0)

嗯,这可能是因为您正在从“Image.jpeg”而不是“Desert.jpeg”中读取数据。也可能是您正在写入“Text.txt”而不是“text.txt”。我也可能是你正在复制jpeg图像数据字节的字节,它将被文本编辑程序解释为文本,而不是你建议的“二进制”。

我真正想知道的是,您希望在文本文件中看到什么?

编辑:现在我知道你想要人类可读的二进制文件,试试这个:

try
{
    FileInputStream fr=new FileInputStream("Image.jpeg");
    FileOutputStream fr1=new FileOutputStream("Text.txt");
    PrintWriter out = new PrintWriter(fr1);
    int temp=0;
    while((temp=fr.read())!=-1)
    {                       
        out.write(Integer.toBinaryString(temp) + " ");
    }
    out.close();
    fr1.close();
    fr.close();
}
catch(Exception e)
{
    System.out.println(e);
}