IO详解(二)字符流

news2024/11/25 18:29:07

字符流

  • FileReader

    在这里插入图片描述

    //创建一个文件字符输入流管道与源文件接通
    Reader fr = new FileReader("D:\\resource\\a.txt");//覆盖管道
    Reader fr = new FileReader("D:\\resource\\a.txt",true);//追加管道
    int c = fr.read();
    
    ---
    
    char[] buffer = new char[1024];
    int len;
    while((len = fr.read(buffer)) != -1){
    	String out = new String(buffer,0,len);
    	System.out.print(out);
    };//性能好,系统调用少
    
  • FileWrite

    在这里插入图片描述

    在这里插入图片描述

    Reader fr = new FileReader("D:\\resource\\a.txt");
    fr.write("\r\n");//写入换行
    fr.flush();//刷新流
    fr.close();//关闭流包含刷新流的操作
    

    字符输出流写出数据后,必须刷新流,或者关闭流,写出去的数据才能生效

    在这里插入图片描述

缓冲流

在这里插入图片描述

缓冲流的作用:对原始流进行包装,以此来提高原始流读写数据的性能

字节输入缓冲流 /字节输出缓冲流 的缓冲池大小为8KB

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

转换流

如果代码编码和被读取的文本文件编码是一致的,使用字符流文本文件时,不会出现乱码

如果代码编码和被读取的文本文件编码是不一致的,使用字符流文本文件时,会出现乱码

GBK编码中,汉字是两个字节,数字是一个字节

UTF8编码中,汉字是三个字节,所以会出现乱码

在这里插入图片描述

字符输入转换流:解决不同编码时,字符流读取文本内容乱码的问题

解决思路:先获取文件的原始字节流,在将其按照真实的字符集编码转成字符输入流,这样字符输入流中的字符就不是乱码了

在这里插入图片描述

在这里插入图片描述

打印流

可以实现更方便,更高效的打印数据出去,实现打印啥出去就是啥出去

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 打印数据的功能是一模一样的,都是使用方便,性能高效(核心优势)
  • PrintStream继承自字节输出流OutputStream,因此支持写字节数据的方法
  • PrintWriter继承自字符输出流Writer,因此支持写字符数据出去

数据流

允许把数据和其类型一并写出去

在这里插入图片描述

在这里插入图片描述

读写数据的顺序要一致

序列化流

对象序列化:把java对象写入到文件中去

对象反序列化:把文件里的java对象读出来

在这里插入图片描述

序列化流

对象序列化:把java对象写入到文件中去

对象反序列化:把文件里的java对象读出来

[外链图片转存中…(img-prhnsmJ1-1706011985647)]

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

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

相关文章

力扣hot100 环形链表 快慢指针 计步器

Problem: 141. 环形链表 文章目录 思路💖 快慢指针法💖 计步器法 思路 👨‍🏫 参考题解 💖 快慢指针法 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) /*** Definition for singly-linked list…

IP地址组成

一、简介 ​ IP地址由四段组成,每个字段是一个字节,即4个字节、 每个字节有8位,最大值是255(256:0~255),是全世界范围是唯一的 32 位(4个字节 * 8位)的标识符。 ​ IP地址由两部分组成&#x…

Mybatis-Generator-1.4.2

知道代码自动化原理,可以自己搞的,连客户端js html一起弄掉 Low Code Development Platform(LCDP)_cms lcdp-CSDN博客

【模拟】力扣38(Java)

题目 class Solution {public String countAndSay(int n) {String ret "1";for(int i1;i<n;i)//解释n-1次ret{StringBuffer tmp new StringBuffer();int len ret.length();for(int left 0,right 0;right<len;){//双指针while(right < len &&…

Gradle 笔记

Gradle依赖管理&#xff08;基于Kotlin DSL&#xff09; **注意&#xff1a;**如果不是工作原因或是编写安卓项目必须要用Gradle&#xff0c;建议学习Maven即可&#xff0c;Gradle的学习成本相比Maven高很多&#xff0c;而且学了有没有用还是另一回事&#xff0c;所以&#xff…

Oracle 19c rac集群管理 -------- 集群启停操作过程

Oracle rac集群启停操作过程 首先查看数据库的集群的db_unique_name SQL> show parameter nameNAME TYPE VALUE ------------------------------------ ----------- --------------------------- cdb_cluster_name …

IMX6ULL|input子系统(按键实验)

一.input子系统 input子系统是Linux对输入设备提供的统一驱动框架。如按键、键盘、触摸屏和鼠标等输入设备的驱动方式是类似的&#xff0c;当出现按键、触摸等操作时&#xff0c;硬件产生中断&#xff0c;然后CPU直接读取引脚电平&#xff0c;或通过SPI、I2C等通讯方式从设备的…

【大数据精讲】全量同步与CDC增量同步方案对比

目录 背景 名词解释 问题与挑战 FlinkCDC DataX 工作原理 调度流程 五、DataX 3.0六大核心优势 性能优化 背景 名词解释 CDC CDC又称变更数据捕获&#xff08;Change Data Capture&#xff09;&#xff0c;开启cdc的源表在插入INSERT、更新UPDATE和删除DELETE活动时…

Linux: hardware: HP: DIMM

今天遇到一个问题是服务器上BIOS检查DIMM出现错误&#xff1a; 462-Uncorrectable Memory Error Threshold Exceeded(Processor 1, DIMM 14). The DIMM is mapped out and is currently not available. Action: Take corrective action for the failing DIMM. Re-map all DIMMs…

CentOS上安装Mellanox OFED

打开Mellanox官网下载驱动 Linux InfiniBand Drivers 点击下载链接跳转至 Tgz解压缩执行 ./mlnxofedinstall发现缺少模块 # ./mlnxofedinstall Logs dir: /tmp/MLNX_OFED_LINUX.11337.logs General log file: /tmp/MLNX_OFED_LINUX.11337.logs/general.log Verifying KMP rpm…

基于SpringBoot Vue求职招聘系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

抖音评论区链接,如何实现跳转到微信?-数灵通

在抖音发布带货视频后&#xff0c;如何有效地将用户吸引到我们的店铺呢&#xff1f;以微商为例&#xff0c;我们可以利用抖音评论区的评论置顶功能来达到这一目的。 评论置顶功能允许作者将一条评论置于评论区的顶部&#xff0c;使其成为评论区的焦点。我们可以利用这一功能来吸…

实现VLAN之间的路由

原理&#xff1a;路由器子接口 一个接口允许多个VLAN通过&#xff08;避免占用物理路由器接口&#xff09;。 目标 第 1 部分&#xff1a;单臂路由 第 2 部分&#xff1a;配置第三层交换机的路由端口 第 3 部分&#xff1a;带SVI的VLAN间路由 第 4 部分&#xff1a;补充知…

书生·浦语大模型实战营-学习笔记5

LMDeploy 大模型量化部署实践 大模型部署背景 LMDeploy简介 轻量化、推理引擎、服务 核心功能-量化 显存消耗变少了 大语言模型是典型的访存密集型任务&#xff0c;因为它是decoder-by-decoder 先把数据量化为INT4存起来&#xff0c;算的时候会反量化为FP16 AWQ算法&a…

WINCC 7.5SP2安装过程

最近在群里有人问WINCC的安装问题&#xff0c;而且费了好大功夫就是安装不上&#xff0c;不管WINCC哪个版本&#xff0c;安装过程都差不多&#xff0c;于是昨天用虚拟机做了个WIN10系统&#xff0c;安装了7.5SP2版本&#xff0c;先在把安装的详细过程说一下 1、系统要求 很多…

webpack如何把dist.js中某个模块js打包成一个全局变量,使得在html引入dist.js后可以直接访问

webpack可以通过使用expose-loader来将模块中的一个js文件暴露为全局可以访问的变量。下面是一个示例代码&#xff1a; 1、安装expose-loader npm install expose-loader --save-dev 2、webpack.config.js配置文件 值得注意的是&#xff1a;我在本地使用16.14.2版本的node打包…

[docker] 关于docker的面试题

docker命名空间 docker与虚拟机的区别 容器虚拟机所有容器共享宿主机的内核每个虚拟机都有独立的操作系统和内核通过namespace实现资源隔离&#xff0c;通过cgroup实现限制资源的最大使用量完全隔离。每个虚拟机都有独立的硬件资源秒级启动速度分钟级启动速度容器相当于宿主机…

leetcode---Z字形变换

题目&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a;之后&#xff0c;你的输出需要从左往右逐行读取&#xff0c;产生…

第十二讲_ArkUI相对布局(RelativeContainer)

ArkUI相对布局&#xff08;RelativeContainer&#xff09; 1. 相对布局概述2. 相对布局的使用3. 子组件位置偏移量 1. 相对布局概述 RelativeContainer 为相对布局的容器组件&#xff0c;支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点&#xff0c;也…

聊聊Git中的引用

一. 引言 什么是Git引用和分支&#xff1f;比如我在 Github 上一个项目的 .git/refs目录下&#xff1a; ├─heads │ dev │ master │ ├─remotes │ └─origin │ master │ └─tagsrefs 目录下包含了 heads、remote、tags 三个子目录&#xff0c;…