假期学习22

第22天:字节流
对应章节:第12章
(1)今天做了什么: File类操作文件和目录:createNewFile()、mkdir()/mkdirs()、delete()、listFiles()配合FilenameFilter过滤。字节流以byte为单位:InputStream/OutputStream是抽象基类。FileInputStream/FileOutputStream基础读写;BufferedInputStream/BufferedOutputStream内置缓冲区大幅减少实际IO次数——这是装饰器模式的典型应用(BufferedInputStream包装FileInputStream)。训练了自己写装饰器类的思维。练习:实现文件复制工具,计算进度百分比并实时打印;递归遍历目录以缩进方式显示目录树(模拟tree命令)。
(2)明天准备做什么: 学完第12章——字符流Reader/Writer体系,InputStreamReader/OutputStreamWriter字节转字符桥梁,BufferedReader/BufferedWriter按行读写;对象序列化(Serializable、ObjectOutputStream/ObjectInputStream);NIO.2的Path和Files工具类。练习文件编码转换和对象序列化/反序列化。
(3)遇到的问题: FileOutputStream默认覆盖模式——忘记在构造器中传true参数导致原文件内容被清空。需要用new FileOutputStream(file, true)追加。递归删除目录时必须先删内部文件再删空目录。字节流读文本文件中文出现乱码——因为UTF-8一个中文字符占3字节,一次读1个byte必然乱码,这是为明天字符流做的铺垫。

posted @ 2026-08-19 10:02  呱哒  阅读(10)  评论(0)    收藏  举报