A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

1.回顾
        字符流
                FileWriter
                FileReader
               
                拷贝文本文件案例:使用一次读一个字符数组, 写一个字符数组的一部分。
               
        字节流
                FileOutputStream
                FileInputStream
               
                拷贝图片、音视频等二进制流数据案例:使用一次读一字节数组,写一个字节数组的一部分。
               
        缓冲流
                增加缓冲区功能。
               
                拷贝文本文件案例
                        使用BufferedWriter和BufferedReader:使用一次读一个字符数组, 写一个字符数组的一部分。
                        缓冲字符流特有读写
                                readLine() -- 读取一行,但不包含换行符
                                newLine() -- 写入一个换行符
               
                拷贝图片、音视频等二进制流数据案例
                        使用BufferedOutputStream和BufferedInputStream:使用一次读一字节数组,写一个字节数组的一部分。
               
2. 标准输入输出流
        System.in  -- 返回 BufferedInputStream -- 多态用法用 InputStream 接收
        System.out -- 返回 PrintStream -- 多态用法 用OutputStream 接收
               
3. 从键盘录入数据保存到文本文件
        System.in 字节流输入
                转换流 InputStreamReader -- 字节流到字符流的桥梁
                字符流再包一下 -- 缓冲流BufferedReader
               
        BufferedWriter 缓冲的字符流输出

4. 从文本文件把数据读取写入到控制台显示

        BufferedReader 缓冲的字符流输入
                转换流: OutputStreamWriter -- 字符流到字节流的桥梁
                字符流再包一下 -- 缓冲流BufferedWriter
       
        System.out 字节流的输出

        注意:
                两个转换流理解上 :按数据流向来理解
                实际使用上都是把字节流转换成了字符流

        理解:
                InputStreamReader
                封装:BufferedReader – InputStreamReader – InputStream
                转换:字节到字符

                OutputStreamWriter
                封装:BufferedWriter – OutputStreamWriter – OutputStream
                转换:字符到字节

                字符流和字节流是根据处理数据的不同来区分的。
                字节流按照8位传输,字符流按照16位传输
                由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。
                字符流的传输效率比字节流的高。

5.打印流
        只有输出流
                PrintStream 字节打印流
                PrintWriter 字符打印流
        特点:
                可以写入任意类型
                自动刷新,但是要开启,并且使用println printf format 方法之一
                可以直接写入文件(类似于那四个File开头的基本流)

6.序列化流
        序列化:把对象写入文件 ObjectInputStream
                -- 注意:对象要实现Serializable接口,标识该对象可以被序列化。
        反序列化:从文件中读取对象。ObjectOutputStream
                (修改了文件,再读回来,抛异常)

7.如果想指定编码 用转换流

8.Properties 表示属性集的集合类  父类是Hashtable
        作为集合:
                修改:setProperty(String k, String v)
                获取:getProperty(String k) -- 通过键获取值,没有,返回null
                          getProperty(String k, String dv) --通过键获取值,如果没有,返回dv
                                Set<String> stringPropertyNames() -- 获取键的集合

        8.1                System.getProperties() -- 调试很有用
        8.2               
                Properties的list(PrintStream ps) / list(PrintWriter pw)
                        -- 把集合里面的数据写到打印流中。

                Properties的load(InputStream is) / load(Reader r)
                        -- 把流中的数据加载到集合中。
               
                Properties的store(OutputStream os, String comments) / store(Writer w, String comments)
                        -- 把集合里面的数据写到输出流中。

                注:.properties属性文件中的注释符号 : #
       
               
               
               
               
               
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马