048_io流

字节流:inpuStream分为三步:
1)建立流通道,获取流 new FileInputStream("****")
2) 操作流,获取流中的数据
available()方法可以获得文件中可读取的字节数
read()可以通过fis流读取文件中的一个字节,返回读到的字节值,因为每次读取一个字节;读到末尾返回-1
调用read(byte[])方法可以从文件中读取若干字节,把读到的字节保存到字节数组中,返回本次从文件中读到的字节数。

假使有9个字节,byte[5],那么会读取三次,第一次读取五个字节,第二次读取四个字节,第三次返回-1表示已经读取完毕。
skip(n)跳过n个字节
3)关闭流 fis.clos;假使我们的流不关闭,会造成有时候读取不出来数据
为了放置程序员忘记关闭流,JDK7使用了try资源块,可以自动关闭流

FileOutputStream
1)new FileOutputStream("****");//若文件存在会覆盖,不存在就会创建
2)fos.write(****);//这个方法可以写一个字节,也可以写一个字节数组,也可以写部分字节数组
3)fos.close;


字符流
utf-8的环境,读取gbk文件会出现乱码
new FileWriter("D:\yexiao1793\file\out.txt", true );//追加方式
FileReader/FileWriter只能读写与当前环境编码兼容的文件.如果读写的文件编码与当前环境编写不兼容,
使用InputStreamReader/ OutputStreamWriter. InputStreamReader可以把字节流转换为字符流,OutputStreamWriter可以把字符流转换为字节流, 这一对流类又称为转换流

原文地址:https://www.cnblogs.com/pogusanqian/p/12513804.html