美文网首页Java
Java 21-7 IO流规律总结

Java 21-7 IO流规律总结

作者: 第二套广播体操 | 来源:发表于2019-02-02 15:32 被阅读0次

    解决开发中使用哪个流对象的问题
    1.明确数据源,数据汇(数据目的)
    其实就是在明确要使用的io体系 InputStream OutputStream Reader Writer
    操作的是源 那么就需要读取
    操作的是汇 那么就需要写入
    2.操作的数据 是否是纯文本数据 是为字符流 否在字节流
    是 并且是源 Reader
    是 并且是目的 Writer

    3.明确要操作的具体设备 每个设备都有对应的流对象
    源:
    硬盘 能操作文件的流对象都是 File开头
    键盘 System.in
    内存 数组
    网络 socket流
    目的:
    硬盘 能操作文件的流对象都是 File开头
    内存 数组
    网络 System.out
    显示器 socket流
    4.额外功能
    缓冲区 Buffered开头
    转换流


    需求1: 通过键盘录入数据 并保存到一个文件中

    明确1:有源 有目的吗
    源使用 InPutStream Reader
    目的使用 OutPutStream Writer

    明确2: 是纯文本数据吗 是
    源 Reader
    目的 Writer

    明确3:具体设备
    源设备System.in
    目的设备硬盘
    IuputStream is=System.in
    FileWriter fw=new FileWriter("a.txt");
    将读取的字节存储到数组中 read(byte[])
    将字节数组转化成字符串
    通过fw.write(String)写入文件中
    麻烦 明确源是Reader

    明确4:需要功能吗?
    需要字节转字符 InputStreamReader
    InputStreamReader isr= new InputStreamReader(System.in);

    需要额外功能吗?
    需要(out带缓存需要刷新)
    BufferedReader bufr =new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bwfw=new BufferedWriter(new FileWriter("a.txt"));

    readLine();
    bufw.write(); bufw.flush();


    需求2:读取文本文件中的数据 将其打印到控制台上
    明确1:有源 有目的
    源:InputStream Reader
    目的 OutputStream Writer

     明确2:是纯文本
     源:Reader
     目的:Writer
    
     明确3:具体设备
     源设备 :硬盘 File
     目的设备:显示器 System.out
    
     FileReader fr=new FileReader("a.txt");
     OutputStream ops=System.out;
     fr读取数据到数组中。将数组文件打印到显示器
    
     源是字符数据 所以通过字符流操作  通过字符转成字节流 给显示器
    
     明确4:额外功能
     字符转换到字节
      FileReader fr=new FileReader("a.txt");
     OutputStreamWriter osw=new OutputStreamWriter(System.in);
     高效
     BufferedReader bufr=new BufferedReader(new FileReader("a.txt"));
     BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
     读取一行数据
     写入一行数据
    

    转换流 InputStreamReader OutputStreamWriter

    相关文章

      网友评论

        本文标题:Java 21-7 IO流规律总结

        本文链接:https://www.haomeiwen.com/subject/rkbssqtx.html