第十五周周总结 缓冲流和对象流

   字符集
   字符   文字和符号总称总称(Character)
   不同国家的数字和符号是一样的    字母
   不同国家的文字 中文 日文 韩文
   计算机最早产生是按照英语单词 单个字符设计的
   字母 数字 符号 ----1字节 8bit 256
   如果计算机想要处理除了上述字母符号以外的其它字符----比如中文2字节
   需要将中文进行字符编码---->拆分 和 组合
   拆分和组合的规则-------所谓的字符编码
   常见的字符编码
        ASCII  American Standard Code for Information Interchange
        ISO-8859-1
        GB2312  GB18030   GBK     BIG5
        Unicode
        UTF-8   UTF-16

        平台(操作系统)默认字符集GBK              Linux(MacOs)默认字符集UTF-8
        编程序使用的开发环境(IDE)——  Idea-->UTF-8   Eclipse--->GBK
        注意在用记事本存储文字       流操作纯文本形式的时候
        字符的形式采用UTF-8
        String s = "你我他";
        byte[] = s.getBytes("UTF-8");
        new String(byte[],"UTF-8");

    缓冲流
             在流管道内增加缓存的数据
             让我们使用流读取的文字更加的流畅
             高级流--->创建通过低级流
             BufferedInputStream/BufferedOutputStream
                  BufferedReader/BufferedWriter

             BufferedInputStream
             构建方式  使用低级流构建
             基本使用和低级流方法完全一致
             read()  skip()  available()  close()

             BufferedOutputStream
             构建方式  使用低级流构建     注意  缓冲流构建的时候没有boolean类型的参数
             基本使用和低级流方法完全一致
             write()  flush()  close()

                            File
                            InputStream           OutputStream
                            Reader                Writer
     文件流
               低级
                        字节型   FileInputStream    FileOutputStream
                        字符型   FileReader         FileWriter
               缓冲
                                 BufferedInputStream    BufferedOutputStream
                                 BufferedReader         BufferedWriter
     数组流     
               byte数组          ByteArrayInputStream      ByteArrayOutputStream
               char数组          CharArrayReader           CharArrayWriter
     数据流                      DataInputStream           DataOutputStream  
     字符串流                    StringReader              StringWriter
     对象流                      ObjectInputStream         ObjectOutputStream

     File+流
     1.为什么要有文件?
                文件永久性的保存信息              讲很多的数据直接存入文件-----数据持久
     2.如果按照以行为单位写信息
                好处在于每一行记录的信息都是相关的
                信息我们可以读取出来  直接看懂文件
                不好在于第一不安全    直接看懂
                不好在于只能记录String信息  不能记录一些动作(方法)
     3.读取出来的信息 String--->Person
     4.如果能将对象拆分成字节码  直接写入文件
                将对象直接存入文件中---对象流
     对象的序列化/反序列化
     对象的序列化指的是
                讲一个完整的对象  拆分成字节碎片  记录在文件中
     对象的反序列化指的是
                将文件中记录的对象随便  反过来组合成一个完整的对象
     如果想要将对象序列化到对象中
                需要让对象实现Serializable接口
                是一个示意性接口
                同时为了让对象可以反序列化
                需要让对象多存在一个属性 private long serialVersionUID = 任意L;
     如果想要将对象反序列化
                需要给对象提供一个序列化的版本号  1.7版本--->String  1.8--->String
posted @ 2019-12-14 13:51  可惜她是水瓶座  阅读(101)  评论(0编辑  收藏  举报