十五、IO流

之前一直没怎么弄目标 ,现在看无非就是读写两种

File类在Java.io包内 是唯一代表文件本身的对象
通过调用file类 能过创建 删除 或者是重命名文件 ,判断某个文件是否存在

然后就是从流向分 输入输出流 从传输内容分 就是字节流和字符流(主要为了中文)

先从流向分析

      输入流和输出流 都有个顶级父类 但是都是抽象类 得依靠子类去实现

  输入流 InputStream  输出流 OutputStream

                 InputStream有两个常用子类  FileInputStream 和BufferedInputStream

     两者的区别呢就是后面的高效一点  原因呢就是他自带缓冲流(我的理解就类似于搬砖 前一个子类呢就是一次搬一块,后一个子类呢 就是一块快的往小车上放 然后一次运过去)底层逻辑就是reader(byte[]),

               OutputStream也是两个常用子类  FileOutputStream 和BufferedOutputStream

         区别都和上面是一样的

然后就是字符流了

也是两个顶级父类 Writer Reader

但是他们常用的子类有三个

   拿Reader举例

                Reader
  FileReader   BufferedReader InputStreamReader
  BufferedReader有自己特有的方法 readLine() 一次读取一行文本 读取到文件末尾 返回null
InputStreamReader 转换流  将字节流转换为字符流

下面写一下常用方法 

            1、File类
构造方法:
    File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
    File(File parent, String child):根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
    File(String parent, String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
常用方法:
    boolean exists():测试此抽象路径名表示的文件或目录是否存在 
    boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。 
    boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。 
    boolean delete():删除此抽象路径名表示的文件或目录。 
    boolean createNewFile():当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 
    boolean mkdir():创建此抽象路径名指定的目录。 
    boolean mkdirs():创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 
    String getName():返回由此抽象路径名表示的文件或目录的名称。 
    String getPath():将此抽象路径名转换为一个路径名字符串。 
    String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。 
    long length():返回由此抽象路径名表示的文件的长度。 
    String[] list():返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 

2、InputStream类(抽象类)

3、FileInputStream类(InputStream类的子类)
    构造方法:    
        FileInputStream(File file):通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
        FileInputStream(String name):通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
    常用方法:
        int available():返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。 
        int read():从此输入流中读取一个数据字节。 
        int read(byte[] b):从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 
        int read(byte[] b, int off, int len):从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。 
        
4、OutputStream类(抽象类)

5、FileOutputStream类(OutputStream类的子类)
    构造方法:    
        FileOutputStream(File file):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 
        FileOutputStream(File file, boolean append):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。append为true表示向文件末尾添加数据,不会覆盖文件中原有数据 
        FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流。 
        FileOutputStream(String name, boolean append):创建一个向具有指定 name 的文件中写入数据的输出文件流。append为true表示向文件末尾添加数据,不会覆盖文件中原有数据 
    常用方法:
        void write(byte[] b):将 b.length 个字节从指定 byte 数组写入此文件输出流中。 
        void write(byte[] b, int off, int len):将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 
        void write(int b):将指定字节写入此文件输出流。 

6、Reader类(抽象类)

7、InputStreamReader类(Reader类的子类)
    构造方法:
        InputStreamReader(InputStream in):创建一个使用默认字符集的 InputStreamReader。
        InputStreamReader(InputStream in, String charsetName):创建使用指定字符集的 InputStreamReader。
    常用方法:
        int read():读取单个字符。 
        int read(char[] cbuf):将字符读入数组。 
        int read(char[] cbuf, int offset, int length):将字符读入数组中的某一部分。 
8、FileReader类(InputStreamReader类的子类)--只能按照平台编码格式读取文件数据,不能指定编码格式
    构造方法:
        FileReader(File file):在给定从中读取数据的 File 的情况下创建一个新 FileReader。
        FileReader(String fileName):在给定从中读取数据的文件名的情况下创建一个新 FileReader。
    常用方法:
        int read():读取单个字符。 
        int read(char[] cbuf):将字符读入数组。 
        int read(char[] cbuf, int offset, int length):将字符读入数组中的某一部分。
        
9、BufferedReader类(Reader类的子类)
    构造方法:
        BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流。
    常用方法:
        int read():读取单个字符。 
        int read(char[] cbuf):将字符读入数组。
        int read(char[] cbuf, int off, int len):将字符读入数组的某一部分。 
        String readLine():读取一个文本行。 --BufferedReader类中特有的方法,可以一行一行的读取数据

10、Writer类(抽象类)

11、OutputStreamWriter类(Writer类的子类)
    构造方法:
        OutputStreamWriter(OutputStream out):创建使用默认字符编码的 OutputStreamWriter。
        OutputStreamWriter(OutputStream out, String charsetName):创建使用指定字符集的 OutputStreamWriter。
    常用方法:    
        void write(char[] cbuf):写入字符数组。 
        void write(char[] cbuf, int off, int len):写入字符数组的某一部分。 
        void write(int c):写入单个字符。
        void write(String str):写入字符串。 
        void write(String str, int off, int len):写入字符串的某一部分。 
        void flush():刷新该流的缓冲。 

12、FileWriter类(OutputStreamWriter类的子类)
    构造方法:
        FileWriter(File file):根据给定的 File 对象构造一个 FileWriter 对象。 
        FileWriter(File file, boolean append):根据给定的 File 对象构造一个 FileWriter 对象。 
        FileWriter(String fileName):根据给定的文件名构造一个 FileWriter 对象。 
        FileWriter(String fileName, boolean append):根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 
    常用方法:
        void write(char[] cbuf):写入字符数组。 
        void write(char[] cbuf, int off, int len):写入字符数组的某一部分。 
        void write(int c):写入单个字符。
        void write(String str):写入字符串。 
        void write(String str, int off, int len):写入字符串的某一部分。 
        void flush():刷新该流的缓冲。 
        
13、BufferedWriter类(Writer类的子类)
    构造方法:
        BufferedWriter(Writer out):创建一个使用默认大小输出缓冲区的缓冲字符输出流。
    常用方法:
        void newLine():写入一个行分隔符(换行)。 
        void write(char[] cbuf):写入字符数组。 
        void write(char[] cbuf, int off, int len):写入字符数组的某一部分。 
        void write(int c):写入单个字符。
        void write(String str):写入字符串。 
        void write(String str, int off, int len):写入字符串的某一部分。

14、DataInputStream类(FilterInputStream类的子类)
    构造方法:
        DataInputStream(InputStream in):使用指定的底层 InputStream 创建一个 DataInputStream。
    常用方法:
        int read():读取单个字节。 
        int read(byte[] b):从包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中。 
        int read(byte[] b, int off, int len):从包含的输入流中将最多 len 个字节读入一个 byte 数组中。 

15、DataOutputStream类(FilterOutputStream类的子类)
    构造方法:
        DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入指定基础输出流。
    常用方法:
        void write(int b):将 b.length 个字节写入此输出流。 
        void write(byte[] b):将 b.length 个字节从指定 byte 数组写入此文件输出流中。 
        void write(byte[] b, int off, int len)将指定 byte 数组中从偏移量 off 开始的 len 个字节写入基础输出流。 

16、ObjectOutputStream类(OutputStream类的子类)
    构造方法:
        ObjectOutputStream(OutputStream out):创建写入指定 OutputStream 的 ObjectOutputStream。
    常用方法:
        void writeObject(Object obj):将指定的对象写入 ObjectOutputStream。 

17、ObjectInputStream类(InputStream类的子类)
    构造方法:
        ObjectInputStream(InputStream in):创建从指定 InputStream 读取的 ObjectInputStream。
    常用方法:
        Object readObject():从 ObjectInputStream 读取对象。 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值