IO流2.0 缓冲流 序列化 字符打印 printf格式 压缩流

news2025/4/21 10:10:02

 04 缓冲流Buffered

4.1字节缓冲流

4.2 字符缓冲流

newLine();在底层自动识别操作系统类别和换行符 其实就是输出换行符;

4.2.1 BufferedReader(字符为单位 尽量用于文本文件) 

不要去操作 二进制文件[声音,视频 ], 可能造成文件损坏

throws Exception {
        String filePath = "e:\\a.java";
        //创建bufferedReader
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        //读取
        String line; //按行读取, 效率高
        //说明
        //1. bufferedReader.readLine() 是按行读取文件 返回一个字符串
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);        //2. 当返回null 时,表示文件读取完毕
        }
        //关闭流, 这里注意,只需要关闭 BufferedReader(外层流),因为底层会自动的去关闭 节点流
        /*
            public void close() throws IOException {//底层源码 自动关闭节点流
                synchronized (lock) {
                    if (in == null)
                        return;
                    try {
                        in.close();//in 就是我们传入的 new FileReader(filePath), 关闭了.
                    } finally {
                        in = null;
                        cb = null;
                    }
                }
            } */
        bufferedReader.close();
    }

4.2.2 BufferedWriter

{        String filePath = "d:\\ok.txt";
        //创建BufferedWriter      说明:
        //1. new FileWriter(filePath, true) 表示以追加的方式写入
        //2. new FileWriter(filePath) , 表示以覆盖的方式写入
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath));
        bufferedWriter.write("hello, 韩顺平教育!");
        bufferedWriter.newLine();//插入一个和系统相关的换行
        bufferedWriter.write("hello2, 韩顺平教育!");     bufferedWriter.newLine();
        bufferedWriter.write("hello3, 韩顺平教育!");     bufferedWriter.newLine();
        //说明:关闭外层流即可 , 传入的 new FileWriter(filePath) ,会在底层关闭
        bufferedWriter.close();
    }

4.3综合练习

四种方式拷贝文件

把《出师表》按段落顺序恢复到新txt文件里;   法2:Tree集合自动排序

 5.0转换流(字节流与字符流转换)

5.1序列化(对象处理)流 

5.1.1ObjectInputStream ObjectOutputStream


5.1.2 序列化流细节


如果javabeen类改动 也会改变版本号 解决方法:固定版本号
idea设置 (根据javabeen)自动生成版本号
勾选两条  新版本idea中 class without 'serialVersionUID'在JVM中


5.1.3综合练习

 

应用ObjectOutputStream 序列化一个Dog(name,age)并保存到data.dat文件中

throws Exception {
        //序列化后,保存的文件格式,不是存文本,而是按照他的格式来保存
        String filePath = "e:\\data.dat";
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath));

        //序列化数据到 e:\data.dat
        oos.writeInt(100);// int -> Integer自动装箱 (实现了 Serializable)
        oos.writeBoolean(true);// boolean -> Boolean (实现了 Serializable)
        oos.writeChar('a');// char -> Character (实现了 Serializable)
        oos.writeDouble(9.5);// double -> Double (实现了 Serializable)
        oos.writeUTF("韩顺平教育");//String
        //保存一个dog对象
        oos.writeObject(new Dog("旺财", 10, "日本", "白色"));
        oos.close();
        System.out.println("数据保存完毕(序列化形式)");       }

5.2打印流


5.2.1字节打印流PrintStream


字节流底层没有缓冲区,开不开自动刷新都 所有数据直接写到文件目的地

5.2.2字符打印流PrintWriter

5.3解压缩流/压缩流 (Java只识别.ZIP压缩文件)

 5.3.1解压缩流

 
zip.close();}

 5.3.2 压缩流


ZipEntry entry=new ZipEntry("aaa//a.txt"); //  参数如果是多级 可表示创建多级文件夹

 

 

 

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

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

相关文章

三个月转行SLAM,他的心路历程

SLAM入门心路历程 来源:知乎作者—莫慢待 读了三年985的计算机硕士,做了很多项目,发现自己是一个菜鸡。c/object-c/python/java/matlab甚至还写过R,也就是项目需要什么写什么。自学能力算是很不错了,第一次创业自己写…

juc-2-锁应用/线程通信

目录 1 线程安全(库存超卖) 2 锁用法 2.1 同步方法 2.2.同步代码块 2.3 synchronized 作用于静态方法 总结 案例 静态成员变量 (synchronized锁非静态方法) 2.4ReentrantLock类是可重入、互斥、实现了Lock接口的锁 3 死锁产生与排查 4 线程间的(等待与通知…

Hadoop实训任务3:HDFS和MapReduce综合操作

目录 1、启动Hadoop服务 2、创建文本文件 3、上传文本文件 4、显示文件内容 5、完成排序任务 6、计算最大利润和平均利润 7、统计学生总成绩和平均成绩 8、总结 1、启动Hadoop服务 在master虚拟机上执行命令: start-all.sh 启动hadoop服务进程 ​ ​ ​…

【嵌入式】构建嵌入式Linux系统(uboot、内核、文件系统)

知识架构及层次 Linux内核由三部分构成: Bootloader:启动引导系统(可执行文件)Kernel:内核(可执行文件)Root File System:根文件系统嵌入式Linux系统构成及启动略析 嵌入式 Linux …

Java八股文,YYDS!字节最新秋招面试题,“死记”这些你也可以斩获字节offer

Java 一面基本上都是基础题,同样是 CURD 的活,谁更熟练要谁,比如下面这些面试题,八股文越熟练越容易通过 Java 面试。 下面会给大家详解的介绍一下每个技术点的必问问题! 一、Java 基础 1.JDK动态代理和CGLIB动态代…

C++图像的形态学操作

什么是图像的形态学操作? 使用数学形态学的基本运算,由计算机对图像进行分析,以达到所需结果的一种技术。 形态学,morphology, 形态学最初是生物学中研究动物和植物结构的一个分支,被引入图像处理领域后,图…

C语言 期末合集 pta

6-1 求最大的偶数和最小的奇数的差 分数 10 全屏浏览题目 切换布局 作者 王跃萍 单位 东北石油大学 求10个数中的最大的偶数和最小的奇数的差。 函数接口定义: int fun(int a[],int n); 函数fun中a、n是用户传入的参数,函数fun的功能是求a数组中的…

【LVGL学习笔记】(五)使用SquareLine Studio设计UI

LVGL全程LittleVGL,是一个轻量化的,开源的,用于嵌入式GUI设计的图形库。并且配合LVGL模拟器,可以在电脑对界面进行编辑显示,测试通过后再移植进嵌入式设备中,实现高效的项目开发。 LVGL中文教程手册&#…

点云地图构建及定位

点云地图构建及定位1. 回环检测1.1 基于Scan Context1.2 基于直方图2. 后端优化2.1 后端优化基本原理2.2 李群、李代数基本知识2.3 李群、李代数基本知识2.3.1 SO(3)\mathrm{SO}(3)SO(3) 对应的 BCH\mathrm{BCH}BCH 公式2.3.2 SE(3)\mathrm{SE}(3)SE(3) 对应的 BCH\mathrm{BCH}…

链式存储之:链表的引出及其简介

上篇博客,笔者讲解了一下顺序表ArrayList,对于ArrayList有想法的各位老铁可以看一下:值得思索的:ArrayList和线性表,你确定错过这次机会_念君思宁的博客-CSDN博客值得思索的:ArrayList和线性表,…

Html5 canvas创意特效合集

Canvas就像一块画布,我们可以通过调用脚本在Canvas上绘制任意形状,甚至是制作动画。本文就是收集了很多非常富有创意的一些canvas动画特效例子,这些例子都非常适合大家学习。 1.3D篝火动画特效 这款篝火特效是基于 three.js 和 canvas 制作的…

博实结将在创业板上会:计划募资25亿元,周小强为实际控制人

近日,深圳市博实结科技股份有限公司(下称“博实结”)在深圳证券交易所递交招股书(上会稿),准备在创业板上市。据贝多财经了解,博实结将于2022年12月23日接受创业板上市委审议,一同上…

Vue3----props和emit的使用

作用:父组件通过 props 向下传递数据给子组件; 用途:当有一种类型的组件需要被使用多次,每一次的调用都只是特定的地方不同,就好像一张个人简介表,每次填的人的信息都不同,但是结构都是一样的。…

Nacos学习笔记 (2)Nacos基础核心特性

内容: Nacos架构及其核心特性,包括服务注册、服务发现、发布与获取配置特性,以及Nacos Spring关键特性。 本文内容,参考 Nacos 官网与 《Nacos架构&原理》一书。 1. Nacos 架构 详情推荐参考: (1&a…

服务器取证——服务器基础知识

目录 一、服务器基本介绍 (一)概念 (二)构成 (三) 种类 (四)与pc区别 二、 磁盘阵列RAID (一)概念 (二)产生原因 &#xff0…

【Django】第二课 银行账户管理系统开发

概念 本文在上一篇文章基础之前进行构建和完善 账户信息的分页显示 用户通过点击首页的“查询账户”,进入账户信息查询页面 则点击该按钮触发点击事件,向django服务器发出请求 接着我们在urls.py中需要定义与该地址进行匹配的地址,并匹配后…

Java on VS Code 12月更新年度亮点回顾|实时内存视图、注入处理器支持与用户体验改进

作者:Nick Zhu - Senior Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,一年的时间过得很快,我们已经来到了2022年的年底。回顾 2022 年,我们的产品也经历了很多的迭代,在此之中…

甲氧基聚乙二醇二苯并环辛烯mPEG-DBCO简介DBCO-mPEG科研实验用试剂

中文名:甲氧基聚乙二醇二苯并环辛烯 英文名:mPEG-DBCO;DBCO-mPEG 分子量: 1K.2K.5K.10k.20k.30k 溶解度: DMSO, DMF 储存条件: -20C 状态:淡黄色到白色固体,或者半固体,取决于分子量。 溶解性&#x…

网心科技马婷:探寻边缘计算的“诗和远方”

​​LiveVideoStackCon 2022上海站活动结束,每一次大会的举办对音视频领域都是新的洗礼,同时也带来了新的收获和挑战。随着音视频技术在各种行业、场景中的逐渐成熟,更多的业务形态、产品变换 、跨界案例等越来越多的部分值得我们探寻和研究。…

「网络工程师必会技能」-路由器介绍和路由器基本配置

「网络工程师必会技能」-路由器介绍和路由器基本配置,这是每个网络必须会的技能,不是你有证书就一个网络工程师了哦! 以Cisco路由器为例说明: (1)访问路由器。访问路由器与访问交换机一样,可以…