流:流是一组有序的数据序列
通过流来读写文件
流从方向分输入、输出流
流从单位份字节、字符流
字节输入流:
InputStream(抽象父类---基类)常用方法:(read()几个重载方法作用不同)
int read():
输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果读到了输入流的末尾,返回-1
int read(byte[] b):
从输入流读取若干字节,把这些字节保存到数组b中。返回的是读取到的字节数,如果读到了输入流的末尾,返回-1
int read(byte[] b,int off, int len):
从输入流读取若干字节,把这些字节保存到数组b中。off指的是字节数组中开始保存数据的起始下标。len指的是读取的字节数目。返回的是实际读取到的字节数,如果读到了输入流的末尾,返回-1
int available():
可以从输入流中读取的字节数目,返回值是读取到的字节数目
void close:
子类FileInputStream常用的构造方法:FileInputStream(File file)
FileInputStream(String name)
/**
* @Description通过字节输入流完成对文件的操作
*/
public class FileInputStreamDemo {
public static void main(String[] args) {
FileInputStream fis=null;
try{
//2.创建FileInputStream对象
fis=new FileInputStream("d:/myDoc/test.txt");
System.out.println("\n可以读取到的字节数"+fis.available());
//3.借助FileInputStream对象的read()方法读取文件
// int data;//读取到的每个字节的整数表示形式 比如h--104
// while ((data=fis.read())!=-1){
// System.out.print((char)data);
// }
//借助FileInputStream对象的read(byte[])方法读取文件
byte[] b=new byte[1024];
int data;//读取到的字节数
while ((data=fis.read(b))!=-1) {
//字节读取到了字节数组b中,需要循环输出b数组中的内容
for (int i=0;i<data;i++)
System.out.print((char)b[i]);
}
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.关闭输入流
try {
fis.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}