【从入门到起飞】JavaSE—IO流(2)字符输入流字符输出流

🎊专栏【JavaSE】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🌺字符输入流
    • 🎄空参read方法
      • 🛸分析
        • 🎈原因
    • 🎄带参read类型
      • 🛸分析
  • 🌺字符输出流
    • 🎄写入字符或字符串
    • 🎄写入字符数组
      • 🛸续写

在这里插入图片描述

🌺字符输入流

上一篇文章我们讲解了字节输入流,但是字节输入流不能读取汉字,如果要想读取汉字,就要使用到这篇文章中的 字节输入流

  • 字符流的底层也是字节流,默认是一个字节一个字节读取的
  • 遇到中文会一次读取多个,GBK一次读取2个,UTF-8一次读取3个字节

🎄空参read方法

在这里插入图片描述
发现我们打印出来汉字

🛸分析

如果没有强转(没有(char)ch),结果是什么样呢
在这里插入图片描述
发现不是汉字,而是一串数字

🎈原因

read方法默认也是一个字节一个字节读取的,如果遇到中文就会读取多个字节
在读取后,底层的方法也会进行解码为十进制,最终把这个十进制作为返回值

英文中文
二进制数二进制数
0110 000111100110 10110001 10001001
2个字节2个字节的读在这里插入图片描述3个字节3个字节的读

所以要强转为char类型

🎄带参read类型

控制每次读取多少个字符

package IODemo1;

import java.io.*;

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //创建对象并关联本地文件
        FileReader fr=new FileReader("G:\\a.txt");
        //读取数据
        char[] chars=new char[2];
        int len;
        while ((len=fr.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }
    }
}

在这里插入图片描述
我们发现,明明控制的是 每次2个读取2个,那为什么会出现上图的情况呢

🛸分析

因为我们使用的是 println
在这里插入图片描述

有参的类型相当于是
空参的read+强制类型转换

🌺字符输出流

根据字符集的编码方式进行解码,把解码之后的数据写到文件中去

🎄写入字符或字符串

在这里插入图片描述

🎄写入字符数组

在这里插入图片描述

🛸续写

我们发现,第二次写的内容会把第一次写的给覆盖下去,如果我们不想覆盖下去,想接着上一次的写,要怎么办呢
在这里插入图片描述

如果对应这篇文章的知识点有问题,欢迎在评论区进行讨论

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

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

相关文章

计算机网络必知必会——传输层TCP

📑前言 本文主要SpringBoot通过DevTools实现热部署的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&…

软通动力赋能触觉智能打造嵌入式鸿蒙原生系统应用标杆

11月16日,由华为主办的生态伙伴赋能闭门交流会在鸿蒙之城深圳成功举办,触觉智能及众多企业伙伴、华为公司技术及运营专家与开发者朋友们,共同探讨鸿蒙原生应用和元服务带来纯国产化的创新应用变革。会议中,软通动力与深圳触觉智能…

108.firefly-sdk下生成recovery.img

本文主要讲的是如何用命令生成recovery.img sdk本身可以自己生成recovery.img,在sdk的目录下,直接运行build.sh recovery,就可以生成了。 本文一则是想研究一下生成的过程,二则主要的就是要能够自己掌控,能够灵活编译出…

基于 FFmpeg 的跨平台视频播放器简明教程(十一):一种简易播放器的架构介绍

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)基于 FFmpeg 的跨平台视频…

生成式大模型的RLHF技术(一):基础

一、概述 大语言模型(LLMs)在预训练的过程中通常会捕捉数据的特征,而这些训练数据通常既包含高质量的也包含低质量的,因此模型有时会产生不被期望的行为,如编造事实,生成有偏见或有毒的文本,甚至…

商业园区的万能管理法,还怪高级的咧!

随着社会的不断发展和科技的飞速进步,视频监控技术已经成为维护安全、提高效率以及实现智能化管理的关键工具。 在这个信息时代,人们对于安全和管理的需求不断提升,而视频监控系统作为一种强大而灵活的解决方案,正日益受到各行各业…

QQ同步通讯录,详细操作方法来了!

腾讯QQ是一款功能丰富的即时通信软件,能够让用户随时随地与好友保持联系,不受时间和地域限制,受到了广大用户的喜爱和信赖。 为了能够快速添加QQ好友,我们可以通过开启通讯录来实现。那么,qq同步通讯录如何操作呢&…

数字IC前端学习笔记:异步复位,同步释放

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 异步复位 异步复位是一种常见的复位方式,可以使电路进入一个可知的状态。但是不正确地使用异步复位会导致出现意想不到的错误,复位释放便是…

新生儿奶藓:原因、科普和注意事项

引言: 新生儿奶藓是一种常见的婴儿皮肤问题,通常在生后的头几个月内出现。尽管奶藓对婴儿的健康没有太大影响,但了解其原因、科普相关信息以及采取适当的注意事项是帮助父母更好地照顾婴儿皮肤的关键。本文将深入探讨新生儿奶藓的原因、相关…

【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总

文章目录 loss图解析train loss ↘ \searrow ↘ ↗ \nearrow ↗ 先降后升 loss图解析 train loss ↘ \searrow ↘ 不断下降,test loss ↗ \nearrow ↗ 不断上升:原因很多,我是把workers1,batchSize8192train loss ↘ \searro…

【Linux】vscode远程连接ubuntu,含失败解决方案

删除vscode远程连接 打开‪C:\Users\GIGA\.ssh\config文件,GIGA是windows下自己的用户名。 删除‪C:\Users\GIGA\.ssh\config文件里的所有内容,点击保存;然后刷新。 可以看出SSH 远程连接已经被删除了。 vscode远程连接ubuntu 在弹出的…

nginx静态网站部署

Nginx是一个HTTP的web服务器,可以将服务器上的静态文件(如HTML、图片等)通过HTTP协议返回给浏览器客户端 案例:将ace-master这个静态网站部署到Nginx服务器上 通过Xftp将ace-master到linux服务器/opt/static目录下,为…

Spring高级bean的实例化方法

bean的实例化方法 构造方法 实例化bean第一种:使用默认无参构造函数(常用) 第二种创建bean实例:静态工厂实例化(了解) 第三种:实例工厂(了解)与FactoryBean(实用)

这些好用的录屏专家,你都知道吗?(干货)

在数字时代,录制屏幕已经成为沟通、教育和创作的重要工具。无论您是一位教育者、企业家还是内容创作者,能够熟练地使用录屏软件将帮助您传达信息和创作内容。在本文中,我们将介绍三款优秀的录屏专家,以帮助您找到最适合自己需求的…

如何通过算法模型进行数据预测

当今数据时代背景下更加重视数据的价值,企业信息化建设会越来越完善,越来越体系化,以数据说话,通过数据为企业提升渠道转化率、改善企业产品、实现精准运营,为企业打造自助模式的数据分析成果,以数据驱动决…

springboot学习笔记

目录 概述 常见的SSM搭建项目弊端 什么是springboot 特点 1.简化部署 2.简化配置,注解代替xml 3.简化依赖配置 4.应用监控 springboot与springmvc,springcloud关系 创建springboot项目 spring4提供的注解 Spring的发展 Java配置 1.核心注解…

构造函数,原型对象,实例对象

1.构造函数、原型对象、实例对象三者分别是什么? 构造函数:用来创建对象的函数,创建实例对象的模板 。构造函数的函数名尽量首字母大写(为了区分普通函数和构造函数)原型对象:每一个函数在创建的时候,系统都会给分配一…

wpf devexpress 绑定数据编辑器

定义视图模型 打开前一个项目 打开RegistrationViewModel.cs文件添加如下属性到RegistrationViewModel类 [POCOViewModel] public class RegistrationViewModel {public static RegistrationViewModel Create() {return ViewModelSource.Create(() > new RegistrationVie…

振弦式渗压计的安装方式及注意要点

振弦式渗压计的安装方式及注意要点 振弦式渗压计是一种高精度、高效率的地下水位测量仪器。它可以测量地下水位的高度,计算地下水的压力,从而推算出地下水的流量。对于地下水资源管理和保护、治理工程等方面具有非常重要的意义。在安装振弦式渗压计时&a…

什么是媒体见证?媒体宣传有哪些好处?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,什么是媒体见证? 媒体见证是指企业举办活动,发布会,邀请媒体现场采访的一种宣传方式,媒体到场后,对其进行记录…