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

Java 为什么程序不返回Text.txt中的二进制数,因为它';s正在从Image.jpeg复制二进制数,java,Java,读取操作以二进制格式读取源代码,但写入操作不以这种方式写入源代码 try { FileInputStream fr=new FileInputStream("Image.jpeg"); FileOutputStream fr1=new FileOutputStream("Text.txt"); int temp=0; while((temp=fr.read())!=-1) { fr1.write

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

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);
}

这可能是因为您读取的数据来自“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);
}

所以,您希望将Image.jpeg二进制复制到Text.txt?但如果打开Text.txt,您将看到垃圾试图查找字符您得到了什么输出?您希望得到什么?感谢您指出我的错误@petermmi我希望以二进制数输出,就像读取操作读取二进制格式的Image.jpeg一样#更正这是否意味着您希望看到以类似010011101的二进制格式编写的二进制数?因为所有的数字在某种意义上都是二进制的,因为我们的十进制数字在引擎盖下都是二进制的。如果是这样的话,你应该考虑使用这个函数。我猜想输出应该是100011011的格式,但是我在输出文件中得到了GabAGE值。这是“wõÿˆŒõÿŒõ”™ÈBÎðÌ[Î/Î]我得到的和输出的文件大小与源文件相似。这是因为逐字节的文本副本将被解释为文本。图像中的数据实际上可以是任何内容,因此,如果你要得到一个Unicode字符的大表,并将手指放在一个随机单元格上,你会发现自己在挑选大量的“垃圾”c角色。也可以查看我的编辑