InputStream:字节输入流
此抽象类是表示字节输入流的所有类的超类。
a.
FileInputStream extends InputStream
FileInputStream:文件字节输入流
作用:把硬盘文件中的数据,读取到内存中使用
构造方法:
FileInputStream(File file)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(String name)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
参数:读取文件的数据源
构造方法的作用:
1.会创建一个FileInputStream对象
2.会把FileInputStream对象指向构造方法中要读取的文件
读取数据原理(硬盘–>内存):
java程序–>JVM–>OS–>OS读取文件的方法–>读取文件
字节输入流的使用步骤(重点):
1.创建FileInputStream,构造方法中绑定要读取的数据源
2.使用FileInputStream对象中的read方法,读取文件
3.释放资源
创建FileInputStream,构造方法中绑定要读取的数据源
FileInputStream fis=new FileInputStream("a.txt");
1).使用FileInputStream对象中的read方法,读取文件
int len=0;//记录读取到的字节
while ((len=fis.read())!=-1){
System.out.print((char) len);//abc
}
2).字节输入流一次读取多个字节的方法:
//使用循环遍历
byte[] bytes=new byte[1024];//存储读取到的多个字节
int len=0;//记录每次读取的有效字符个数
while ((len=fis.read(bytes))!=-1){
// System.out.println(new String(bytes));
System.out.println(new String(bytes,0,len));
}
释放资源
fis.close();
b.
BufferedInputStream extends InputStream
BufferedInputStream:字节缓冲输入流
使用步骤:
1.创建FileOutputStream对象,在构造方法中绑定要读取的数据源
2.创建BufferedOutputStream对象,在构造方法中传递FileOutputStream对象,提高FileOutputStream对象效率
3.使用BufferedOutputStream对象中的方法read,读取文件
4.释放资源
FileInputStream fis=new FileInputStream("a.txt");
BufferedInputStream bfis=new BufferedInputStream(fis);
// int len=0;
// while ((len=bfis.read())!=-1){
// System.out.println(len);
// }
byte[] bytes=new byte[1024];
int len=0;
while ((len=bfis.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
bfis.close();