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

news2024/9/22 20:33:39

🎊专栏【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+强制类型转换

🌺字符输出流

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

🎄写入字符或字符串

在这里插入图片描述

🎄写入字符数组

在这里插入图片描述

🛸续写

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

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

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

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

相关文章

SVG图片在HTML页面中的四种加载方法

HTML专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简…

OpenAI前CEO萨姆·阿尔特曼可能重返CEO职位;用LoRA微调LLM的实用技巧

🦉 AI新闻 🚀 OpenAI前CEO萨姆阿尔特曼可能重返CEO职位 摘要:据报道,OpenAI前CEO萨姆阿尔特曼有望重新担任CEO职位,并对公司董事会进行重大改变。微软等投资人正努力恢复阿尔特曼的职位,尽管董事会仍然是…

nginx静态网站部署

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

Vue2基础-Vue对象进阶介绍1

文章目录 一、绑定样式绑定class样式绑定style样式总结 二、渲染条件渲染列表渲染语法key详解 三、Vue检测数据原理问题解决 四、收集表单数据五、过滤器定义语法: 六、内置指令回顾v-text指令:v-htmlcookie问题 v-clock指令v-oncev-pre 一、绑定样式 绑定class样式 <!-- …

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

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

108.firefly-sdk下生成recovery.img

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

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

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

redis五大常见数据结构的操作命令(string, hash, list, set和zset)

string redis的string&#xff0c;直接按照二进制&#xff08;不做任何的转换&#xff0c;存的是什么取出来的依旧是什么&#xff09;的方式存储。所以string不仅仅可以存储文本数据&#xff0c;还可以存储整数&#xff0c;JSON&#xff0c;xml甚至音视频。但是string的大小最…

智达方通EPM,解决企业经营分析和管理难题

随着我国企业的不断发展&#xff0c;其战略目标也不断壮大&#xff0c;在企业经营活动和战略执行方面遇到的挑战随之增多&#xff0c;面临着业务、财务和企业目标不对等&#xff0c;工作执行力度不够、流程难跟踪&#xff0c;相关数据无法共享、信息闭塞等痛点。在此现状下&…

振弦式渗压计的安装方式及注意事项

振弦式渗压计的安装方式及注意事项 振弦式渗压计是一种常用的测量土壤水位的仪器&#xff0c;可以用于监测地下水位、土壤含水量、岩层渗透系数等参数。其原理是依靠振弦的共振频率变化来测量介质中的压力变化。 安装方式&#xff1a; 1.适当选取安装点&#xff1a;振弦式渗压…

STM32存储左右互搏 SPI总线FATS文件读写FLASH W25QXX

STM32存储左右互搏 SPI总线FATS文件读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库实现FATS文件操作W25Q各型号FLASH的例程。…

C++ 十进制与十六进制转换

文章作者&#xff1a;里海 来源网站&#xff1a;里海C\C专栏 十进制与十六进制转换 #include <iostream> #include <string> using namespace std;//十进制整数转十六进制字符串 string DecimalToHex(long long decimal) {string hex "";while (de…

buildadmin+tp8表格操作(3)----表头上方按钮绑定事件处理,实现功能(选中或取消指定行)

在buildAdmin的表格中&#xff0c;通过按钮来选中和取消某一行 这种情况&#xff0c;只适合表格行的单选 在elementplus是这样说的 我们所使用的就是这个方法 看一下buildAdmin中的用法 highlight-current-row 是element-plus 中表格的属性 因为 buildadmin 中的table是对 el…

ModuleNotFoundError: No module named ‘pycocotools‘

cuda 12.1 pytorch 2.0.1 python 3.11 运行代码&#xff0c;报该错误&#xff0c;尝试了以下方法解决&#xff1a; 方法一 # step 1: 安装cython pip install Cython# step 2: 安装pycocotools pip install githttps://github.com/philferriere/cocoapi.git#eggpycocotools…

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

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

性格急躁怎么办?如何改变急躁的性格?

性格急躁很多人可能都有&#xff0c;有的人只是有过&#xff0c;而有些人持续的有&#xff0c;而且越来越频繁&#xff0c;要说偶尔出现性格急躁也算不上什么大问题&#xff0c;可是当急躁成了一种人格特征&#xff0c;或者说急躁是在一段时间内持续的&#xff0c;那么这问题就…

【漏洞复现】浙大恩特CRM大客户系统sql注入0day(三)

漏洞描述 杭州恩软信息技术有限公司(浙大恩特)提供外贸管理软件、外贸客户管理软件等外贸软件,是一家专注于外贸客户资源管理及订单管理产品及服务的综合性公司。 浙大恩特客户资源管理系统中的T0140_editAction.entweb接口存在SQL注入漏洞,攻击者可通过此漏洞获取企业数…

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

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

SpringBoot3.x最简集成SpringDoc-OpenApi

为什么使用SpringDoc 在SpringBoot低版本时一般使用Swagger扫描接口生成Json格式的在线文档&#xff0c;然后通过swagger-ui将Json格式的文档以页面形式展示文档。可惜遗憾的是swagger更新到3.0.0版本(springfox)后不更新了。 SpringBoot3.x以后需要的JDK版本最低为Java17&…

C#中的is和as的使用和区别

目录 概述一、is操作符1. is操作符的语法2. is操作符的用途3. is操作符的使用示例4. is操作符与typeof操作符的区别 二、as操作符1. as操作符的语法2. as操作符的用途3. as操作符的使用示例4. as操作符与is操作符的区别和联系5. as操作符与is操作符的区别总结 概述 在C#编程语…