FileInputStream的内部工作

|                                                                                                                   关闭。这个问题是题外话。它当前不接受答案。                                                      
已邀请:
每个系统(Linux,Mac,Windows甚至不同版本)的工作方式都不同。这就是它的优点。您不需要知道,只要知道它已被处理即可。您可以在每个系统上以相同的方式使用它。 如果您真的想知道它是如何工作的,则必须查看正在使用的系统的jvm实现的源代码。 从FileInputStream源:
private native void open(String name) throws FileNotFoundException;

public native int read() throws IOException;

private native int readBytes(byte b[], int off, int len) throws IOException;
这表明每个系统的书写方式不同。但是,当您要使用它时,无论使用什么系统,都可以使用相同的代码。     
要获得两者之间区别的最终答案(至少从严格的Java角度来看),请查看Java API(http://www.oracle.com/technetwork/java/api-141528.html)您正在使用的Java版本的规范。对于JavaSE 1.6,请查看FileInputStream和DataInputStream。 据我了解,DataInputStream对于使用程序中可访问的数据输入流非常有用;而FileInputStream用于访问程序外部的文件(例如,文件系统上的文件)。     
FileInputStream
是将文件读取为字节流的类。
DataInputStream
是读取另一个流并为标准类型应用转换的类(即,您可以告诉它读取4字节
int
,而不是读取字节)。 它们有两个完全不同的目的。     

要回复问题请先登录注册