假期学习23

第23天:字符流与序列化
对应章节:第12章(续)
(1)今天做了什么: 字符流以char为单位处理文本避免字节流乱码。Reader/Writer是抽象基类。FileReader/FileWriter直接对接文件。InputStreamReader/OutputStreamWriter是字节→字符的桥梁,构造时可指定编码(UTF-8、GBK)。BufferedReader的readLine()按行读、BufferedWriter的newLine()写换行。序列化:对象实现Serializable,ObjectOutputStream写对象,ObjectInputStream读回对象。serialVersionUID做版本控制(不匹配抛异常)。transient关键字排除不想序列化的字段(如密码)。NIO.2:Path替代File,Files.readAllLines()一行读完全文,Files.copy()复制。练习:编码转换工具(GBK→UTF-8);Person对象序列化后反序列化比对属性。
(2)明天准备做什么: 进入第13章多线程上半部分——并发与并行的区别,进程和线程的关系,创建线程的三种方式(Thread、Runnable、Callable+FutureTask),线程生命周期五状态,sleep/join/yield/setPriority方法。练习龟兔赛跑多线程模拟。
(3)遇到的问题: Writer的write()后如果不flush()或close(),数据不一定立即写入文件——缓冲机制。BufferedWriter的newLine()在不同系统自动输出对应换行符(\n或\r\n)。序列化时如果类修改了字段没改serialVersionUID,反序列化抛InvalidClassException。transient字段反序列化后值是null(引用类型)或0(基本类型)。

posted @ 2026-08-22 20:01  呱哒  阅读(5)  评论(0)    收藏  举报