【发布时间】:2017-08-25 16:45:12
【问题描述】:
read() 方法返回一个 int 表示数据的下一个字节,而 read(byte[] b) 方法不返回任何内容,它将字节数据值分配给作为参数传递的数组。
我用图像文件做了一些测试,我采取了两种方法:
打印read()方法返回的结果,直到这个结果为-1(这意味着已经到达文件末尾)。
创建一个字节数组并将其作为 read(byte[] b) 方法的参数传递,并打印分配给该字节数组的数字。
我注意到两种情况的结果是不同的:第二种情况,由于结果是字节类型,数字不大于127或小于-128;例如,在第一种情况下,我发现了大于 200 的数字。
由于两种情况下的文件相同,并且这些数字代表该文件的数据,这两种情况下的数字不应该相同吗?
我还使用 FileOutputStream 将文件的数据写入另一个新文件,在这两种情况下,新文件具有相同的字节并且看起来相同(正如我所说,它是一个图像)。
谢谢。
【问题讨论】:
-
你真的确定
read(byte[] b)不会返回任何东西吗?
标签: java byte fileinputstream fileoutputstream