• 【14-Ⅱ】Head First Java 学习笔记


    HeadFirst Java

    本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

    第一章 Java入门
    第二章 面向对象
    第三章 变量
    第四章 方法操作实例变量
    第五章 程序实战
    第六章 Java函数库
    第七章 继承与多态
    第八章 深入多态
    第九章 构造器与垃圾收集器
    第十章 数字与静态
    第十一章 异常处理
    第十二章 GUI(内部类)
    第十三章 Swing
    第十四章 保存对象


    前言

    继续前一小节内容,这一节主要讲文件的IO。也就是上一节提到的第二种方式。即有时需要把数据存到单纯的文本文件中。例如,你的servlet(web服务器上运行的java程序)会读取用户在网页输入的数据,并将它写入文本文件方便网站管理人分析。

    将字符串写入文本文件

    写入文本数据(字符串)与写入对象类似

    在这里插入图片描述
    文本文件的范例——e-Flashcard
    在这里插入图片描述

    java.io.File class

    File类代表磁盘上的文件,但不是内容。可以理解为文件的路径、目录。该类提供一种比直接使用文件名表示文件更安全的表示文件方式。
    常见用法:
    在这里插入图片描述

    缓冲区

    作用:暂时摆一堆东西直到满。类似购物车~
    比起直接调用FileWriter的write()方法写文件,减少了磁盘操作次数。写满再存

    可以用 缓冲区的writer.flush()方法强制 缓冲区立即写入
    在这里插入图片描述

    读取文本文件

    最常见的读取数据方式:while循环测试
    在这里插入图片描述

    缓冲区读空才会到文件读取磁盘(文件不是一次性读完的,一行一行读的;这里缓冲区链接(chain)文件链接串流(connect),可以理解为文件部分流动在缓冲区上(缓冲区先读最大限量),所以读完缓冲区的,再去读磁盘,而不是每次都直接读磁盘)

    String的split()

    String test = "a/b/c/d";
    String[] tests = test.split('\');
    
    • 1
    • 2

    按分割字符将字符串拆成多个字符串。

    Version ID

    前文已经学习常见的I/O,以及对应的Connect/Chain流组合。但还有一个重要的问题,类的变更会导致什么?
    在这里插入图片描述

    使用serialVersionUID

    每当对象被序列化,都会被盖上一个类的版本识别ID。
    当尝试还原时,会比对对象与JVM类上的这个SVUID,如果不符合(即更新了类),就会抛出异常。
    解决的方法:更新类之后,将SVUID也放在类中

    当然,这方式你必须确保你做的修改是上图中不会有影响的修改,且默认值合理。

  • 相关阅读:
    《机器人SLAM导航核心技术与实战》第1季:第0章_SLAM发展综述
    迅镭激光GI系列高功率激光切割机成功中标覆铜板龙头企业HZ公司
    java基于Springboot+vue的医院体检预约挂号系统 elementui
    权重叠加:如果是复合选择器,则会有权重叠加需要计算权重
    springboot源码理解三、自动配置(第三方依赖中的bean)
    吴恩达对话刘慈欣:让科幻更有勇气,让人工智能更有想象力
    黑盒测试方法:原理+实战
    功率放大器在材料测试中的应用有哪些
    450-深信服面经1
    ROS 笔记(06)— 话题消息的定义和使用
  • 原文地址:https://blog.csdn.net/weixin_45845008/article/details/138197770