IO(Reader/Writer)

news2024/9/28 20:08:38

1.Reader

a.简介

        i.是Java的IO库提供的另一种输入流。和InputStream的区别是:InputStream是字节流,以byte为单位,Reader是字符流,以char为单位。

        ii.java.io.Reader是所有字符输入流的超类。

b.FileReader

        i.FileReader默认的编码与系统相关,创建时需要指定编码,Windows系统的默认编码可能是GBK,打开一个UTF-8编码的文本文件出现乱码。
        ii.int read(char[] c)一次性读取若干字符并填充到char[]数组,返回实际读入的字符个数,最大不超过char[]数组的长度,返回-1表示流结束。

c.CharArrayReader

        i.可以在内存中模拟一个Reader,实际作用是把char[]数组变成一个Reader。

d.StringReader

        i.可以直接把String作为数据源,和CharArrayReader几乎一样。

e.InputStreamReader

        i.除了特殊的CharArrayReader和StringReader,普通的Reader实际上是基于InputStream构造的,因为Reader需要从InputStream中读取字节流(byte),然后根据编码设置,再转换成char就可以实现字符流。
        ii.Reader本质上是一个基于InputStream的byte到char的转换器,InputStreamReader转换器可以把任何InputStream转换成Reader。

2.Writer

a.简介

        i.带编码转换器的OutputStream,把char转换成byte并输出。

        ii.java.io.Writer是所有字符输出流的超类。

b.FileWriter

        i.向文件中写入字符流的Writer。

c.CharArrayWriter

        i.在内存中创建一个Writer,实际上是构造一个缓冲区,可以写入char,最后得到写入的char[]。

d.StringWriter

        i.也是一个基于内存的Writer,和CharArrayWriter类似。实际上,内部维护了一个StringBuffer,并对外提供了Writer接口。

e.OutputStreamWriter

        i.除了特殊的CharArrayWriter和StringWriter,普通的Writer实际上是基于OutputStream构造的,接收char,然后在内部自动转换成byte,并写入OutputStream。
        ii.Writer本质上是一个基于OutputStream的char到byte的转换器,OutputStreamWriter转换器可以把任何OutputStream转换成Writer。

3.PrintStream和PrintWriter

a.PrintStream

        i.是一种FilterOutputStream,提供写入各种数据类型的方法。
        ii.System.out:系统默认提供的标准输出流。System.err:系统默认提供的标准错误输出流。
        iii.可以打印各种数据类型,不会抛出IOException,编写代码时,不需要捕捉IOException。

b.PrintWriter

        i.PrintStream最终输出的总是byte数据,而PrintWrite则是扩展了Writer接口,它的print()/println()最终输出的是char数据。

4.Files

        a.读写小文件的工具类,读取大文件仍然要使用文件流。
        b.Files是java.nio包里的,封装了很多读写方法。

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

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

相关文章

【Kubernetes】常见面试题汇总(四十三)

目录 98. kube-apiserver 和 kube-scheduler 的作用是什么? 99.您对云控制器管理器了解多少? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)…

甘肃辣椒油:舌尖上的热辣诱惑

💥宝子们,今天必须要给你们安利甘肃食家巷的辣椒油🌶️!✨甘肃辣椒油,那可是有着独特魅力的美食瑰宝😍。它以其鲜艳的色泽、浓郁的香气和醇厚的辣味,瞬间点燃你的味蕾🔥。&#x1f3…

关于聚类算法的一份介绍

在这篇文章中我将介绍无监督算法中“聚类”部分的知识,其中关于K均值聚类、层次聚类、密度聚类部分我将各附上一份实际运用的代码,而其余的像学习向量量化、高斯混合聚类部分则只是简单介绍下概念。 一、 关于聚类 首先我先简单介绍下聚类算法有关的东…

2024年7月大众点评温州美食店铺基础信息

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时,大众点评的数据参考价值非常大,截至2024年7月,大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 温州餐饮美食店铺约6.5万家,有均…

CTF-SSH私钥泄露

CTF-SSH私钥泄露 一.信息探测--查看开放的服务--分析探测结果-- 探测大端口的信息 深入挖掘ssh信息![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6baf0b5de72d537c7093d3e2394d93cd.png#pic_center)解密ssh秘钥信息 工具:kali Linux 一.信息探测…

IO相关知识(Filter/序列化)

1.Filter模式 a.简介 i.直接使用继承,为各种InputStream附加更多功能,根本无法控制代码的复杂度,很快就会失控。 ii.为了解决依赖继承会导致子类数量失控的问题,JDK首先将InputStream分为两大类: …

SpringBoot+Activiti7工作流入门实例

目录 文章目录 目录准备Activiti建模工具1、BPMN-js在线设计器1.1 安装1.2 使用说明1.3运行截图 2、IDEA安装Activiti Designer插件2.1安装插件2.2 设置编码格式防止中文乱码2.3 截图 简单工作流入门实例1. 新建Spring Boot工程2. 引入Activiti相关依赖添加版本属性指定仓库添加…

10.1软件工程知识详解上

软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…

一文上手SpringSecuirty【六】

自定义认证流程完成之后,前端收到了后端生成的token,那么在之后的所有请求当前,都必须携带token.作为服务器来说,得验证这个token,是否合法. 一、验证token是否合法 1.1 OncePerRequestFilter过滤器 OncePerRequestFilter是 Spring 框架中的一个过滤器,用于确保在…

强化-极限

不利于元素及时提现 要学会构建导数(按照定义)

老挝旅游如何解决沟通问题?《老挝语翻译通》app支持语音识别翻译功能,能有效解决语言不同的痛点

老挝,一个东南亚的神秘国度,以其独特的文化和语言吸引着全球旅行者和语言爱好者。为了帮助大家更好地了解和学习老挝语,我们推出了《老挝语翻译通》App,一款集翻译、学习、旅游于一体的多功能工具。 功能亮点 实时翻译&#xff1…

滚珠丝杆如何安装滚珠?

滚珠丝杆安装滚珠是一门非常专业的知识,其安装过程需要细致且精确,这样才能确保其后续运行的顺畅与稳定。以下是安装滚珠的详细步骤: 一、准备工作 确保工作区域清洁无尘,准备合适的螺丝刀、扳手等工具,以及适量的润滑…

win10文件共享设置 - 开启局域网文件共享 - “您没有权限访问,请与网络管理员联系请求访问权限”解决方案

实现步骤: 1、在“网络和共享中心”关闭“密码保护的共享” 2、在“启用和关闭windows功能”中开启SMB文件共享支持。 3、在磁盘安全选项中添加“everyone”用户(重点!) 详细操作: https://blog.csdn.net/Skyirm/a…

怎么不用付费直接编辑pdf?5款pdf在线编辑器免费推荐给你!

在我们日常工作中,可能会经常需要直接编辑修改pdf内容,例如,在将文档发送给其它人之前,您可能需要进行一些修改;或者当扫描的文本出现错误时,您也需要进行修正。此时,如果有一款在线编辑器&…

【笔记】7.1 小功率整流滤波电路

一、 单相整流电路 任务:把正弦电压转变为单向脉动的电压。 类型:有单相半波、全波、桥式和倍压整流等。 分析方法:为分析简单起见,把二极管当作理想元件处理,即二极管的正向导通电阻为零,反向电阻为无穷…

北斗三号多模对讲机TD70:公专网融合、数模一体、音视频调度,推动应急通信效能升级

随着国家对应急通信和精准定位技术的重视程度不断提高,相关技术和设备的研发与应用也得到了迅猛发展。特别是在边防巡逻、林业巡防、海上作业等领域,通信设备的可靠性和功能性直接关系到人员的生命安全和任务的成功完成。 近年来,我国政府高度…

软件测试面试100问(含答案+文档)

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里…

py 元组,列表,函数的学习和使用

代码 下面两个Python脚本&#xff0c;分别解决问题。 1. 脚本 test1.ipynb # 创建一个元组 t1 和一个空列表 list1 t1 (1, 2, R, py, Matlab) list1 [] # 使用 while 循环&#xff0c;将 t1 中的元素添加到 list1 i 0 while i < len(t1): list1.append(t1[i]) …

计241 作业2:C程序设计初步

问题 A: C语言实验——计算AB&#xff08;顺序结构&#xff09; 思路讲解: 这个直接计算ab就好&#xff0c;没有什么困难的&#xff0c;用来熟悉环境最适合不过 代码实现: #include<stdio.h>int main() {int a,b;scanf("%d %d",&a,&b);printf("…

时间技能物品竞品抢拍拍卖发布h5公众号小程序开源版开发

时间技能物品竞品抢拍拍卖发布h5公众号小程序开源版开发 利用新型营销方式&#xff0c;将闲置的物品通过拍卖&#xff0c;让价格一提再提让用户趣在其中&#xff0c;营造一种不一样的购物体验! 拍卖列表页 列表页采用多分类&#xff0c;广告轮播及流动公告和拍卖商品列表组成…