JavaSE—IO流之字符流

📌 字符流中的常用类及基本方法:

  • 输入字符流 Reader
  • 输出字符流 Writer

○ Reader 的基本方法:

• 读取一个字符并以整数的形式返回, 如果返回-1已到输入流的末尾。

int read() throws IOException

• 读取一系列字符并存储到一个数组buffer, 返回实际读取的字符数, 如果读取前已到输入流的末尾返回-1。

int read( char[] cbuf) throws IOException

• 关闭  void close() throws IOException


○ Writer 的基本方法:

• 向输出流中写入一个字符数据,该字节数据为参数b的16位

void write(int c) throws IOException

• 一个字符类型的数组中的数据写入输出流

void write( char[] cbuf) throws IOException

• 将一个字符类型的数组中的从指定位置(off set)开始的 length个字符写入到输出流

void write( char[] cbuf, int off set, int length) throws IOException

• 关闭  void close() throws IOException


字符流只能读取文本文件

📌 代码测试:

我们先创建一个char1.txt文本, 并写入内容进行读写测试

通过代码将char1.txt文本的内容读写到char2.txt文本

 public static void main(String[] args) throws IOException {
        FileReader reader =new FileReader("E:/char1.txt");
        FileWriter writer =new FileWriter("E:/char2.txt");
        int b = 0;
        while((b=reader.read())!=-1) {
            System.out.println(b);//打印字符编码
            writer.write(b);
        }
        reader.close();
        writer.close();
    }

 字符流读取时以字符为单位,会将读到字节结合编码表转换为一个字符编码 

 ③ 我们可以将每次读取到的字符对应的编码打印出来

 成功读写内容到char2.txt文本

 


📌 上述写法的弊端:

每次运行程序会将之前所读写的内容覆盖带掉,不能做到在原内容的基础上续写

• 解决方法:在字符输出流的对象路径后加上true, 表示可续写

 此时当我们多次运行程序时, 发现之前的所读写的内容依然存在


📌 那么我们怎样进行换行操作?

public static void main(String[] args) throws IOException {
        FileReader reader =new FileReader("E:/char1.txt");
        //保留原来的内容,在原内容基础上向后追加(续写)
        FileWriter writer =new FileWriter("E:/char2.txt",true);
        BufferedReader bufferedReader =new BufferedReader(reader);
        BufferedWriter bufferedWriter =new BufferedWriter(writer);

        String line = null ;
        while((line=bufferedReader.readLine())!=null){//只要每次读取不为空,则读取一行
            bufferedWriter.write(line);//写一行
            bufferedWriter.newLine();//插入换行符
        }
        bufferedReader.close();
        bufferedWriter.flush();
        bufferedWriter.close();//记得在读写完毕后关闭通道

    }

注意: 由于读取一行的方法readLine( )在BufferedReader中,换行方法newLine( )在BufferedWriter类中,所有需要用到缓冲字符输入输出流.

此时当我们多次运行程序时, 会将每次读取到的内容进行换行读写, 便于记录数据



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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OPPO案例 | Alluxio在DataAI湖仓一体的实践

分享嘉宾: 付庆午-OPPO数据架构组大数据架构师 在OPPO的实际应用中,我们将自研的Shuttle与Alluxio完美结合,使得整个Shuttle Service的性能得到显著提升,基本上实现了性能翻倍的效果。通过这一优化,我们成功降低了约一…

【免费】教你如何考取腾讯云《云函数 SCF》认证

云函数 SCF考试PC网址 云函数 SCF - 认证中心 - 腾讯产业互联网学堂 (tencent.com) 注:免费认证,里面包含免费的课程,浏览器用Edge。 文章目录 目录 文章目录 前言 一、备考流程 二、注意事项 总结 前言 随着云计算的不断发展&#xf…

基于word2vec+LSTM模型实现百度贴吧恶意评论预测

大家好,我是带我去滑雪! Word2Vec模型能够将词语映射到高维空间中的向量表示,同时保留了词语之间的语义信息和上下文关系。这使得模型能够更好地理解评论中的语境和含义。LSTM模型是一种适用于处理序列数据的深度学习模型,能够有效…

面对淘天的升级,如果说我们要在渠道运营端口做出一些改变,最重要、最应该、最优先的是什么?|淘天商品API数据采集接口

2024年,电商真正跨入了新AI时代。 在这个新时代,工具、方法、体系……都在升级,堪称一日千里。 商家如何更好地顺应时代的变化?2024年,我给大家的建议总结为两句话。 第一句是借平台的红利; 第二句是建立自…

【VTKExamples::Points】第十期 NormalEstimation

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例NormalEstimation,并解析接口vtkPCANormalEstimation,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力…

I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

网络驱动是 linux 里面驱动三巨头之一, linux 下的网络功能非常强大,嵌入式 linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动,本章我们就来学习一下linux 里面的网络设备驱动。 嵌入式网络简介 网络硬件接口 首先…

【C语言】tcp_sendmsg_locked

一、讲解 tcp_sendmsg_locked 函数是 Linux 内核中实现 TCP 数据发送的一个核心函数。这个函数被调用来将用户空间的数据通过 TCP 发送出去。以下是该函数的基本工作流程的中文解释: 1. 函数初始化和检查: - 它首先检查是否使用了 TCP 零拷贝发送&am…

【微服务】Spring Boot 版本升级到 2.7.18

前言 目前项目上扫描出一些 Java 依赖的代码漏洞&#xff0c;需要对现有依赖版本升级&#xff0c;记录一下遇到的问题。 <spring-boot.version>2.3.2.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> <s…

RuoYi-Vue-Plus(登录流程-验证码生成)

一、登录流程 1- 进入登录页面&#xff0c;调用 com.ruoyi.web.controller.common.CaptchaController 类中的 captchaImage 方法&#xff0c;生成base64的图片 以及 UUID 2- 提交 登录信息 验证码 uuid 比对 错误&#xff1a;返回错误信息&#xff0c;删除缓存的验证码 成功…

一个优秀的开源ChatGpt外壳项目(lobe-chat)

lobe-chat 简介&#xff1a; 开源、现代化设计的 ChatGPT/LLMs 聊天应用与开发框架支持语音合成、多模态、可扩展的插件系统&#xff0c;一键免费拥有你自己的 ChatGPT/Gemini/Ollama 应用。 下载lobe-chat lobe-chat项目开源地址&#xff1a;GitHub - lobehub/lobe-chat: &am…

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构

2024送书福利正式起航 关注「哪吒编程」&#xff0c;提升Java技能 文末送5本《MySQL高可用解决方案――从主从复制到InnoDB Cluster架构》 大家好&#xff0c;我是哪吒。 爱奇艺每天都为数以亿计的用户提供7x24小时不间断的视频服务。通过爱奇艺的平台&#xff0c;用户可以…

查看Linux系统重启的四种基本命令

目录 前言1. last2. uptime3. journalctl4. dmesg 前言 对于排查其原因推荐阅读&#xff1a;详细分析服务器自动重启原因&#xff08;涉及Linux、Window&#xff09; 在Linux中&#xff0c;有多种命令可以查看系统重启的信息 以下是其中一些常用的命令及其解释&#xff1a; …

跨时钟域学习记录(一)

亚稳态 亚稳态是电平介于高低电平之间的一种暂时状态。在同步系统中&#xff0c;当寄存器的信号无法满足建立时间和保持时间时&#xff0c;输出端的信号就可能出现亚稳态。在异步系统中&#xff0c;亚稳态并非一定在建立时间和保持时间无法满足时出现。   受噪声、温度、电压…

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

HarmonyOS系统开发ArkTS常用组件文本及参数(五)

目录 一、Text组件 1、Text组件案例 二、Text组件参数 1、string字符串类型 2、Resources类型 2.1、resources中内容配置 base/element/string.json 中的内容 zh_US/element/string.json 中的内容 es_US/element/string.json 中的内容 2.2、环境适配 适配英文 适配中文…

初探Ruby编程语言

文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好&#xff0c;今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘&#xff08;Yukihiro Matsumoto&#xff09;于1993年发明…

计算机网络实验——学习记录二(HTTP协议)

1. Linux主机上连接互联网的网络接口是&#xff1a;ens33。 2. 在显示过滤器&#xff08;Filter&#xff09;中输入“ http.host www.zzu.edu.cn”&#xff0c;筛选出HTTP协议报文首部行中包含“ Host&#xff1a;www.zzu.edu.cn”的报文&#xff08;目的地址是Web服务器的报…

微前端——qiankun

一、微前端 微前端是指存在于浏览器中的微服务&#xff0c;其借鉴了后端微服务的架构理念&#xff0c;将微服务的概念扩展到前端。即将一个大型的前端应用拆分为成多个模块&#xff0c;每个微前端模块可以有不同的团队开发并进行管理&#xff0c;且可以自主选择框架&#xff0…

RSTP、MSTP、VRRP

RSTP协议原理与配置 问题一、STP的收敛延时&#xff08;30秒&#xff08;有BP端口情况下RP端口down&#xff09;或者50秒&#xff08;没有BP端口情况下RP端口down&#xff09;&#xff09; RSTP&#xff1a;Rapid Spanning Tree Protocol RSTP和STP从原理流程上一样&#xf…

Vivado的SIMULATION的Scope和source的层级怎么看

一、查看source source的层级可以很容易看出来&#xff0c;上面是tb文件的名称&#xff0c;下面的 axi_full_wrapper : axi_full_wrapper (axi full wrapper.v) (1)中&#xff0c;右边的那个axi_full_wrapper是模块名称&#xff0c;也是源文件名称&#xff08;因为module之后接…