可以把流理解为一根管
文件流:读取文件中的信息/将信息写入文件中
文件流按照读取或写入的单位(字节数)大小来区分
字节型文件流(1字节)
FileInputStream/FileOutputStream
字符型文件流(1~2字节)
FileReader/FileWriter
1.字节型文件输入流
FileInputStream
继承InputStream类,字节型输入流的父类
没有无参构造方法。给文件,或给文件地址(路径)
常用方法
int code = fis.read(); // 每次从流管道中读取一个字节,返回对应的Unicode码,读不到返回-1
int code = fis.read(byte[]); // 每次从流管道中读取若干个字节,存入数组中。返回读取的有效字节的个数。读不到返回-1
int code = fis.available(); // 返回当前流管道中还有多少缓存的字节数
fis,skip(long n); // 返回long , 跳过 n 个字节,再读取
fis.close(); // 关流。关闭的是流通道,这是必须要做的,放在finally里
2.字节型文件输入流
FileOutputStream将数据写入文件中
继承OutputStream
没有无参构造方法
new FileOutputStream(File f);
new FileOutputStream(File f,Boolean b);
new FileOutputStream(String str);
new FileOutputStream(String str,Boolean b);
b如果是true,则表示每次写入都是在文件尾追加。如果不写或写false,则表示每次写入的时候,都会先清空文件里面的内容
常用方法
1.write(int code); 将给定的Unicode对应的字符写入文件
2.write(byte[]); 将数组中的全部字节写入文件,String中有个getBytes()方法
3.flush(); 将管道内的字节推入文件中(刷新)
4.close();