IO流

1. 文件与IO

1) 文件 File

  ① 文件路径的两种表示方式

   

       ② File可以表示一个文件,也可以表示一个文件夹

       ③ File对象的方法

④ File构造方法

        没有提供无参的构造方法

2) I/O流概念

I/O:输入输出,input   outputI/O相对于JVM而言

分类:流:文件的数据流

 

传输方向:输入流、输出流

传输单位:字节流、字符流

            功能:节点流、过滤流

                   节点流:真正传输数据的流

                   过滤流:包装节点流,让节点流具有更强的功能

3) I/O字节流

字节流传输的是字节

① InputStream(抽象类)      字节输入流

   子类:FileInputStream     文件的输入流

方法:read();  read(byte[] b);   read(byte[]b, int off, int len);

② 流的关闭异常

   is.close

 

③ OutputStrem(抽象类)

  子类:FileOutputStream

业务需求:把文件d:\\a.txt赋值一份到e:\\b.txt

       ④ 数据过滤流:DataInputStream/DataOutputStream

          能够把一个数字进行存取,文件类型为:*.dat

          注意:存放数据的顺序、类型要和取数据一致

       ⑤ 缓冲过滤流:BufferedInputStream/BufferedOutputStream

          了解缓存是如何实现的(缓存大小是8192)

          有缓存输出时需要手动调用flush()方法才能把缓存中的内容刷入到文件中

       ⑥ 对象过滤流:ObjectInputStream/ObjectOutputStream

          对象序列化(钝化):把对象转换成字符序列的过程

          对象反序列化(活化):把字符序列还原成对象的过程

          

          如果当前对象的属性又是一个对象,则对象也需要被序列化方可存储

          关键字:transient(被此关键字修饰的属性不会被序列化)

 

字节流输入流:① 创建文件对象

              ② 创建字节流输入流对象

              ③ 将文件的数据读入到字节数组中

              ④ 输出数据内容,将字节数组转换为字符串,使用String类的构造方法

字节流输出流:① 创建文件对象

              ② 创建字节流输出流对象

              ③ 将字符串转为字节数组

              ④ 将数据写入到文件

              ⑤ 关闭输出流,释放资源

 

 

4)  I/O字符流

      ① 编码

         编码:把字符转换成数字的过程

         解码:把数字转换成字符的过程

         编码格式(UTF-8):

             iso-8859-1:西方国家文字

             GBK:简体中文

             GB2312:简体中文

② 字符流

         能够读写汉字

         Writer/Reader

         FileWriter/FileReader

         方法和使用参照字节流

      ③ 桥接流

         能够把字节流转换字符流,可设置转换的编码格式

         InputStreamReader / OutputStreamWriter

      ④ 缓冲过滤流

         BufferedReader / BufferedWriter:提供缓存功能,可以读一行和重新写一行 

         ***BufferedWriter不能接受outputstream类型的对象,只能通过printwriter方法进行。

 

PrintWriter:可以一行一行的写入

 

字符流输入流:① 创建字符流输入流对象

              ② 创建一个BufferedReader缓冲区

              ③ 整行整行的读取

 

字符流输出流:① 创建一个字符流输出流对象

              ② 创建一个BufferedWrite缓冲区

              ③ 将要写入的内容通过write()方法写入到缓冲区

              ④ 刷新缓冲区

  二进制读写流:

   字节流转换为字符流:InputStreamReader

   字符流转换为字节流:

 

posted @ 2019-07-23 18:41  小小超plus  阅读(130)  评论(0编辑  收藏  举报