使用OuputStream
写入文件时,使用writeInt()
有什么区别:
public static void makeFile(String name) throws Exception{
try (
OutputStream ostr = new FileOutputStream(name); ) {
//Uses writeInt() method
ostr.writeInt(1);
ostr.close();
}
}
并使用write()
:
public static void makeFile(String name) throws Exception{
try (
OutputStream ostr = new FileOutputStream(name); ) {
// Uses the write() method with an int as input
ostr.write(1);
ostr.close();
}
}
这两种方法意味着什么?
答案 0 :(得分:0)
writeInt
不是OutputStream
的成员,所以它不会编译。假设您使用DataOutputStream
或类似的,它将以big-endian顺序写入32位整数的四个字节。 write
只会写一个字节(int
中最不重要的)。
可以说,在同一界面中混合这两种不同的想法并不是一个好主意。 DataOutputStream
不应该延长OutputStream
,但现在要解决这个问题为时已晚。
答案 1 :(得分:0)
writeInt(int)来自DataOutput接口。 (ObjectOutputStream实现ObjectOutput接口,ObjectOutput接口扩展DataOutput接口。)正如您从JavaDoc文档中看到的DataOutput writeInt方法,它以大端顺序将四个字节写入基础流。
write(int)来自OutputStream类,它由ObjectOutputStream扩展。此方法写入int参数的低位字节(“最右侧”8位)。同样,您可以在JavaDoc文档中看到这一点。