InputStream
InputStream是Java中处理字节输入的一个抽象类,由于抽象类本身并不能实例化,所以需要其各个子类来实现,最常用的是FileInputStream子类,它可以对任意文件进行操作,也可以代替字符输入流做文字的输出。
FileInputStream
FileInputStream集成了InputStream父类抽象类,实现了其所有的方法,用于对字节文件的操作,也可以进行字符输出
构造方法
//根据字符串抽象为一个文件的路径
public FileInputStream(String name) throws FileNotFoundException {
//如果路径名称不等于null则new一个File对象,否则为null
this(name != null ? new File(name) : null);
}
//根据一个File对象传入目标文件路径
public FileInputStream(File file) throws FileNotFoundException {
//如果file变量为不等于null就调用getPath方法获取路径,否则为null
String name = (file != null ? file.getPath() : null);
//调用getSecurityManager()方法
SecurityManager security = System.getSecurityManager();
if (security != null) {
//不等于null执行括号里的方法
security.checkRead(name);
}
if (name == null) {
//name参数等于null就抛出空指针异常
throw new NullPointerException();
}
if (file.isInvalid()) {
//判断路径是否有效,无效则抛出下面异常
throw new FileNotFoundException("Invalid file path");
}
fd = new FileDescriptor(); //new一个FileDescriptor对象
fd.attach(this); //调用attach方法放入对象本身
path = name; //把名称赋值给成员变量path
open(name); //调用open方法传入name
}
读的操作
read方法
read方法是用于对文件进行读取的操作,总共有三种重载方法
//读取单个字符,无参数
public abstract int read() throws IOException;
//根据byte字节数组读取字节数