【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('\');

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

Version ID

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

使用serialVersionUID

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InstantMesh:利用稀疏视图大规模重建模型从单张图像高效生成3D网格

作者:Jiale Xu,Weihao Cheng,Yiming Gao等 编译:东岸因为一点人工一点智能 InstantMesh:利用稀疏视图大规模重建模型从单张图像高效生成3D网格在这项工作中,我们提出了InstantMesh,一个开源的…

【C语言】红黑树详解以及C语言模拟

一、红黑树的性质二、红黑树的旋转操作三、红黑树的插入操作四、红黑树的删除操作五、红黑树的应用六、C语言模拟红黑树七、总结 红黑树是一种自平衡二叉查找树,它能够保持树的平衡,从而确保查找、插入和删除的最坏情况时间复杂度为O( l o g n log_n log…

批量控制教程-Ansible管理windows

背景 你厌恶要手动操作多台机器进行某些重复的操作吗?想象一下,在周五的晚上你想要下班了,但是你得在很多台机器手动发布一些东西,每台机器都要整半小时,整整8台机器,一晚上几个小时可以预见又没了。 ans…

LoRA: 大模型的低秩适配

笔记整理:陈一林,东南大学硕士,研究方向为不确定知识图谱规则学习 链接:https://arxiv.org/abs/2106.09685 1、动机 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练,然后对特定任务或领域进行适应性…

CentOS命令大全

系统信息查询命令 在CentOS系统中,了解如何查询系统信息对于系统管理和性能监控至关重要。以下是一些基本而强大的命令,用于获取关于您的系统的各种信息。 1. uname - 获取系统信息 uname命令用于打印系统信息,例如内核版本、主机名等。使…

python之schedule

在Python中,可以使用schedule模块来执行定时任务。这个模块提供了简单易用的API,可以让你按照指定的时间间隔或特定时间点执行函数或任务。 首先,需要使用pip安装schedule模块: pip install schedule下面是一个简单的例子&#…

JAVA10迭代更新

文章目录 1 概述2 语法层次的变化1_局部变量的类型推断 3 API层次的变化1_集合中新增copyOf创建只读集合2_Optional 新增了orElseThrow方法 4 其他1_垃圾回收器接口2_G1 并行 Full GC3_应用程序类数据共享(扩展 CDS 功能)4_实验性的基于 Java 的 JIT 编译器 1 概述 2018年3月21…

新能源汽车小米su7

小米su7汽车 function init() {const container document.querySelector( #container );camera new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );camera.position.set( 0, 700, 7000 );scene new THREE.Scene();scene.background ne…

vue项目中基于fabric 插件实现涂鸦画布功能

vue项目中基于fabric 插件实现涂鸦画布功能 一、效果图二、安装依赖三、main.js引入四、主要代码 一、效果图 二、安装依赖 npm install fabric 三、main.js引入 import fabric from fabric Vue.use(fabric);四、主要代码 //封装成了一个组件 <template><el-dialogt…

Java中static关键字的使用与练习

Java中static关键字的使用与练习 在Java编程中&#xff0c;static关键字是一个非常重要的概念&#xff0c;它用于修饰类的成员变量和方法。通过static关键字&#xff0c;我们可以创建与类本身关联而不是与类的实例关联的成员。下面&#xff0c;我们将详细探讨static关键字在Ja…

FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion

本文首发于公众号&#xff1a;机器感知 FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion Gradient Guidance for Diffusion Models: An Optimization Perspective Diffusion models have demonstrated empirical successes in various applications and ca…

C语言中的指针常量的常量指针

指针常量和常量指针是C/C编程语言中两个重要的概念&#xff0c;它们都与指针有关&#xff0c;但具有不同的含义和用途。 1. 指针常量&#xff08;Pointer to Constant&#xff09; 指针常量指的是一个指针的值&#xff08;即它所指向的地址&#xff09;在初始化之后不能再被改…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制婴儿性别比例饼图

在MATLAB 中可以使用 pie 函数来创建饼图。饼图是一种展示不同部分占总体的相对比例的图表。 本示例从“婴儿出生数据.csv”文件读取婴儿出生数据&#xff0c;然后计算男性和女性婴儿的数量&#xff0c;使用MATLAB绘制饼图。 配套图书链接&#xff1a;https://item.jd.com…

Unity 帧同步游戏解决方案梳理

帧同步游戏解决方案梳理 一、保证所有客户端的计算结果一致二、帧同步手感优化&#xff1a;三、不同步问题总结&#xff1a;四、帧同步优化&#xff1a; 一、保证所有客户端的计算结果一致 保证所有客户端的计算结果一致 1、逻辑与显示分离 逻辑控制显示&#xff0c;而显示的执…

AI图书推荐:AI驱动的图书写作工作流—从想法构思到变现

《AI驱动的图书写作工作流—从想法到变现》&#xff08;AI-Driven Book Creation: From Concept to Cash&#xff09;是Martynas Zaloga倾力打造的一本实用指南&#xff0c;它巧妙地将写作艺术与人工智能前沿技术相结合。此书不仅揭示了AI在图书出版领域的无限潜力&#xff0c;…

应用层协议 -- HTTPS 协议

目录 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 2、理解“加密” 二、对称加密 1、理解对称加密 2、对称加密存在的问题 三、非对称加密 1、理解非对称加密 2、中间人攻击 3、CA 证书和数字签名 四、总结 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 HTTPS 也是…

光端机——光纤通信学习笔记(八)

​​​​​​ 光发射机 基本性能要求 合适的发光波长 良好的消光比 合适的输出光功率 调制特性好 基本组成 光源 光源:是实现电光转换的关键器件&#xff0c;在很大程度上决定着光发射机的性能。 (1)发射的光波长应和光纤低损耗“窗口”一致&#xff0c;即中心波长应在 850…

fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/

Git error. Command: git fetch stdout: stderr: fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/’: Failed to connect to github.com port 443 after 75005 ms: Couldn’t connect to server exit code: 128 GitHub (国际型)代码 分发平台/托管平…

Mycat(一)入门概述

文章目录 概述作用原理 Mycat1.x 与 Mycat2 功能对比1.x 与 2.0 功能对比图 Mycat2 相关概念概念描述 配置文件1、服务&#xff08;server&#xff09;2、用户&#xff08;user&#xff09;3、数据源&#xff08;datasource&#xff09;4、集群&#xff08;cluster&#xff09;…

XiaodiSec day035 Learn Note 小迪安全学习笔记

XiaodiSec day035 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 day35 前言 关于 xss 入门 xss 开始 是一个前端的漏洞 数据输入输出的地方容易产生 分类: 反射性存储型DOM 型很多很多 产生过程使用<script>alert(1)</script>弹个窗 …