IO流总结

IO:是用来解之间数据传输的问题

按照流向进行划分:
    1、输入流
    2、输出流


 

按照数据类型划分:
    1、字节流
        1)基本字节流
            基本字节输入流
                InputStream(抽象类)
                    FileInputStream
                   
            基本字节输出流
                OutputStream(抽象类)
                    FileOutputStream
                   
        2)字节缓冲流
            字节缓冲输入流
                BufferedInputStream
                创建对象:
                    BufferedInputStream bis = new BufferedInputStream(
                                                        new FileInputStream(...));
                       
            字节缓冲输出流
                BufferedOutputStream
                创建对象:
                     BufferedOutputStream bos = new BufferedOutputStream(
                                                        new FileOutputStream(...));
                 
读取数据的两种方式:
    a:一次只读一个字节
        int b = 0;
        while((b=bis.read())!=-1){
            System.out.print((char)b);
        }
        bis.close();
    b:一次读取一个字节数组
        byte[] bytes = new byte[1024];
        int length = 0;
        while((length = bis.read(bytes))!=-1){
            System.out.print(new String(bytes,0,length));
        }
        bis.close();
写数据的三种方式:
    一次只写一个字节
    一次写一个字节数组
    一次写一个字节数组的一部分
    注意:每写完后,调用flush()刷新缓冲区

2、字符流
    字符流 = 字节流 + 编码表
    1)基本字符转换流
        基本字符输入流 Reader
            A: InputStreamReader
               创建对象:
                    InputStreamReader isr = new InputStreamReader(
                                                new FileInputStream(...));
                   
            B:简化写法:FileReader
                创建对象:
                   FileReader fr = new FileReader(...);
                  
        基本字符输出流 Writer        
            A: OutputStreamWriter
                创建对象:
                    OutputStreamWriter osw = new OutputStreamWriter(
                                                new FileOutputStream(...));
                 
            B:简化写法:FileWriter
                创建对象:
                    FileWriter fw = new FileWriter(...);
                    
    2)字符缓冲流
        字符缓冲输入流:
            BufferedReader
                创建对象:
                    方式1:BufferedReader br = new BufferedReader(
                                new InputStreamReader(new FileInputStream(...)));
                    方式2:BufferedReader br = new BufferedReader(new FileReader(...));
                    
                  c)特殊方法:readLine(),一次读取一行
                    String line = null;
                    while((line=br.readLine())!=null){
                        System.out.println(line);
                    }
                    br.close();
              
        字符缓冲输出流:
            BufferedWriter
                创建对象:
                    方式1:BufferedWriter bw = new BufferedWriter(
                                new OutputStreamWriter(new FileOutputStream(...)));
                    方式2:BufferedWriter bw = new BufferedWriter(new FileWriter(...));
                     d)特殊方法:newLine();
读取数据的两种方式:
a) 一次只读取一个字符
    int ch = 0;
    while((ch = isr.read())!=-1){
        System.out.println((char)ch);
    }
    isr.close();
b) 一次读取一个字符数组
    char[] chars = new char[1024];
    int length = 0;
    while((length = isr.read(chars))!=-1){
        System.out.print(new String(chars,0,length));
    }
    isr.close();
一次只写一个字符
一次写一个字符数组
一次写一个字符数组的一部分
注意:每写完后,调用flush()刷新缓冲区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值