*IO流:
1.对文件的读写操作
2.分类:按流向分为:输入: FileReader
输出:FileWriter
*字节流:InputStream OutputStream
*字符流:Reader Writer
*字节输入输出流:
FileInputStream 字节输入 往外读
FileOutPutStream 字节输出 往里面写
*字符输入输出流:
FileWriter
FileReader
*转换流:将字节转化成字符 也可以和BufferWriter嵌套使用 可以指定编码级
OutPutStreamWriter 写
InputStreamReader 读
*对象序列化操作:
ObjectInputStream 称为 反序列化流,利用输入流从文件中读取对象
ObjectOutputStream 称为 序列化流,利用输出流向文件中写入对象
*Properties:
继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。
Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。
1.put方法
2.setProperty (设置Key Value 都是String类型的)
3.store()
可以将设置的键值对传到文本里 (传进一个PrintWriter对象)
*输出流:FileWriter
1.FileWriter fw = new FileWriter("文件名");
相对路径:如果没有这个文件 就在这个类的根目录下面创建这个文件(自动的)
绝对路径:前面有盘符
2.往里面写:fw.writer()
里面可以传int String(可以限制长度) char[](可以限制长度)
\n:换行
3.刷新:fw.flush
4.创建FileWriter对象一定要写try{} catch{}
5.用完要关闭 fw.close() close()方法会自动调用flush方法(自动刷新)
6.用完资源一定要释放
7.finally:一定会执行的代码
*输入流:FileReader
1.FileReader fr = new FileReader("文件名");
2.读字符:fr.read();
里面可以传char类型数组 将文件里面的数据读取到指定数组当中
返回值为int类型 如果返回的是-1 则表示读到文件末尾
*缓冲流:BufferedWriter:
1.BufferedWriter bw =new BufferedWriter();
2.比FileWriter效率更高
3.换行 bw.nextLine();
4.先写一个FileWriter对象 再把FileWriter对象传进BufferedWriter new出来的对象里面
5.使用完关闭BufferedWriter对象就行了
BufferedReader:
1.read(): 一次读一个 返回值为int 返回
2.readLine() :一次读一行 返回值为String 返回值为null时则证明到文件末尾