版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40969422/article/details/80106769
InputStream:字节输入流(抽象类)--->子类FileInputStream
int read()从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1
int read(byte[] b)从输入流读取若干字节,把这些字节保存到数组b中,返回的是读取到的字节数,
如果到了输入流的末尾,返回-1
int read(byte[] b,int off,int len)
从输入流读取若干字节,把这些字节保存到数组b中,off指的是字节数组中开始
保存的起始下标,len指读取的字节数目。返回的是读取到的字节数,如果遇到了输入流的末尾,返回-1
void close() 读完了关闭文件流对象
int available()可以从输入流中读取的字节数目
子类FileInputStream常用的构造方法
FileInputStream(File file) new的时候传一个文件
FileInputStream(String path) new的时候传一个路径
package io.cn;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//读取文件E:\JAVA\IOFile\test.HTML中的类容
public class FileInputStreamDemo {
public static void main(String[] args) {
FileInputStream file=null;
//输入流FileInputStream
try {
//首先要有test.HTML这个文件
file=new FileInputStream("E:\\JAVA\\IOFile\\test.HTML");
System.out.println("可读到的字节数:"+file.available());
//借助输入流的方法read()读取文件,适用于直接在控制台输出
int data;
while((data=file.read())!=-1){
//将字节转换成char,连续输出print不换行
System.out.print((char)data);
}
//借助输入流read(byte[])方法读取文件,即需读又需写这种方式效率更高
/* byte[] b=new byte[1024];
while((data=file.read(b))!=-1){
for(int i=0;i<data;i++){
System.out.println((char)b[i]);
}
}*/
} catch(FileNotFoundException e){
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}finally{
try {
//关闭输入流
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}