zoukankan      html  css  js  c++  java
  • 字符流,字节流总结

    想要知道开发用到哪些对象,只要通过四个明确即可
    1,明确源和目的
        愿:InputStream Reader
        目的:OutputStream Writer
    2,明确数据是否是纯文本数据
        愿:    愿:是纯文本:Reader
                否:InputSteam
        目的:是纯文本Writer
            否:OutputStream
    3,明确具体设备
        原设备:
            硬盘:File
            键盘:System.in
            内存:数组
            网络:Socker流
        目的设备
            硬盘:File
            键盘:System.out
            内存:数组
            网络:Socker流
    4,是否需要其他额外功能
        1,是否需要高效(缓冲区)
            是,就加上buffer
    ===================================================    
    需求1:复制一个文本文件
        1,明确源和目的
        源:InputStream Reader
        目的:OutputStream Writer
        2,是否是纯文本
        是
        源:Reader
        目的:Writer
        3,明确具体设备
        源:
            硬盘:File
        目的:
            硬盘:File
        FileReader fr=new FileReader("a.txt");
        FileWriter fw=new FileReader("b.txt");
        4,需要额外功能吗
        需要
            BufferedReader bufr=new BufferedReader(new FileReader("a.txt"));
            BufferedWriter bufw=new BufferedWriter(new FIleWriter("b.txt"));
    ============================================================================
    需求2:读取键盘录入信息,并写入到一个文件中
        1,明确源和目的
        源:InputStream Reader
        目的:OutputStream Writer
        2,是否是纯文本吗
            是,
                源:Reader
                目的:Writer
        3,目的设备
            源:键盘:System.in
            目的:硬盘:File
            InputStream in=System.in;
            FileWriter fw=new FileWriter("b.txt");
            这样做可以完成,但是麻烦,将读取的字节数据转成字符串,再有字符流操作
        4,需要额外功能吗
            需要: 转换 将字节流转成字符流。因为明确的源是Reader,这样操作吻别数据做便捷
            所以要将已有的字节流转成字符流。使用字节--->字符 InputStreamReader    
            InputStreamReader inr=new InputStreamReader(System.in);
            FileWriter fw=new FileWriter("b.txt");
            还需要高效吗
            需要:
            BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bufw=new BufferedWriter(new FileWriter("b.txt"));
    需求3:讲一个文本文件显示在控制台上
        1,明确源和目的
        源:InputStream Reader
        目的:OutputStream Writer
        2,是否是纯文本吗
        是,
            源:Reader
            目的:Writer
        3,明确具体设备:
        源: 硬盘:File
        目的:控制台:Sytem.out
        FileReader fr=new FileReader("a.txt");
        OutputStream out=System.out;
        4,需要额外功能吗
        需要转换:fr=new FileReader("a.txt");
        OutputStream osw=new OutputStreamWriter(System.out);
        需要高效
        BufferedReader bufer=new BufferedReader(new FileReader("a.txt"));
        BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
            
    需求4:读取键盘录入数据,显示在控制台上
        1,明确源和目的
        源:InputStream Reader
        目的:OutputStream Writer
        2,是否是纯文本吗
        是,
            源:Reader
            目的:Writer
        3明确设备
            源;键盘:System.in
            目的:控制台:System.out
        InputStream in=System.in;
        OutputStream out=System.out;
        4,明确额为功能
            需要转换,因为都是字节流,但是操作的却是文本数据
            所以使用字符流操作更为便捷
            InputStreamReader in=new InputStreamReader(System.in);
            OutputStreamWriter osw=new OutputStreamWriter(System.out);
            为了将起高效
            BufferedReader bufr=new BufferedReader(InputStreamReader(System.in));
            BufferedWriter bufw=new BufferedWriter(OutputStreamWriter(System.out));
  • 相关阅读:
    Linux下取代top的进程管理工具 htop
    Linux学习初步
    【程序员的吐槽】八一八那些让你感觉蠢哭了的BUG
    【学习随手记】POSIX消息队列执行报Permission denied的问题。
    【学习总结】环境高级编程源码配置
    【学习总结】UNIX网络编程使用源码配置
    【工作心得】有关主键索引
    【转】More Effective C++ (虚拟构造函数)
    【转】C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
    【学习心得】python学习心得
  • 原文地址:https://www.cnblogs.com/kedoudejingshen/p/2726971.html
Copyright © 2011-2022 走看看