编码转换流

同理,创建f1和f2方法,分别测试OutputStreamWriterInputStreamReader

 也是主要分三步,即1创建流   2使用流   3关流

OutputStreamWriter   f1方法

因为要操作流,所以先创建一个try-catch-finally结构,创建流对象OutputStreamWriter,传参使用FileOutputStream,依然传地址,使用write方法往文件中写入一串字符,去磁盘检查文件即可验证

 

 在记事本中读取的时候,这里可能会出现乱码,就要看看idea的编码和记事本是不是一样的,都在右下角

 所以说,这里idea是可以在程序中指定编码的,从而达到编码转换的效果

回到创建FileOutputStream的地方:可以看到FileOutputStream是有好几种重载的构造方法的,后面第二个参数就是指定字符集

可以写入 "gbk" , "iso-8859-1"等 

保持写入时的编码和记事本的编码一致,即可在程序写进记事本后,去打开记事本正常查看

InputStreamReader   f2方法

这里如果不用记事本,程序写完后,继续使用程序来读取也是可以的

 同样因为要操作流,所以先创建一个try-catch-finally结构,创建流对象InputStreamReader,传参使用FileInputStream,依然传上面这个地址,使用read方法从文件中读取出这一串字符

这里发现读取出来的并不是预想之中的字符,而是一串数字

并且在换了几种字符集后,发现不同的编码表  打印出来的数字也不一样的

如果读取的是utf-8 和idea默认读取的编码是同一种,那么读取到的数字就和写入的一样

实际上我们并不是想看这个编码,是想看中文字符内容,下面来完善

1、先动态创建一个长度足够的char数组

2、然后调read方法,将字符数据读到这个数组里面去,返回是数据的长度,不过此时是read的重载的传数组的方法,直接传数组

3、最后调String重载的构造方法,将char数组封装成String

这里传起始下标和数据的长度是因为要读到了几个长度,就封装几个长度,不然会字符串输出完后后面全是空格 

注意传的长度是上面接收read方法返回的数据长度,而不是char数组的长度chars.length !

代码: 

到这里还需要补充一点,,回去仔细看控制台输出,会发现字符串的第一个字符没有了,

换了其他字符串写入也是丢失首字符

 这是因为在前面还调用read方法读取了一下,而read方法的特性是按顺序读取,且只能读取一次,其实前面已经把第一个字符读了,打印出一个编码数字到控制台,再继续读取后面剩下的字符,就引起了这个问题

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARTS 打卡 第一周,初试ARTS

前言 认识三掌柜的想必都知道,我持续创作技术博客已经有6年时间了,固定每个月发布不少于6篇博文。同时,自己作为一名热爱分享的开发者,像ARTS这样的活动自然少不了我。由于我是打算挤在一起分享,之前都是做了本地文档记…

在PHP8中统计数组元素个数-PHP8知识详解

在php8中,统计数组元素的个数,有下面几个函数:使用count()函数统计数组元素个数、使用sizeof()函数统计数组元素个数。还讲到了,使用array_count_values()函数来统计数组中每个元素出现的次数。 1、使用count()函数统计数组元素个…

大数据知识点之大数据5V特征

大数据的特征可以浓缩为五个英文单词,Volume(大量)、Variety(多样性)、Velocity(速度)、Value(价值)、Veracity(准确性)。因为是5个特征都是以“V”开头的英文单词,又叫大数据5V特征。 概述&…

Redis常用应用场景

Redis是一款开源的基于内存的键值存储系统,它提供了多种数据结构和丰富的功能,适用于各种不同的应用场景。以下是Redis常用的应用场景: 1.缓存:Redis最常见的用途就是作为缓存。由于Redis存储在内存中,读取速度非常快…

线性代数的学习和整理19,特征值,特征向量,以及引入的正交化矩阵概念(草稿)

目录 1 什么是特征值和特征向量? 1.1 特征值和特征向量这2个概念先放后 1.2 直观定义 1.3 严格定义 2 如何求特征值和特征向量 2.1 方法1:结合图形看,直观方法求 2.1.1 单位矩阵的特征值和特征向量 2.1.2 旋转矩阵 2.2 根据严格定义…

建站系列(八)--- 本地开发环境搭建(WNMP)

目录 相关系列文章前言一、准备工作二、Nginx安装三、MySQL安装四、PHP安装及Nginx配置五、总结 相关系列文章 建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— …

8月客户文章盘点——累计IF 168.4,平均IF 8.42

客户文章一览 凌恩生物以打造国内一流生物公司为目标,在科研测序领域深耕不辍,吸纳多名在生物信息高级技术人员的加盟,参与并完成多个高科技项目。现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验&#xff…

SpringBoot 如何使用 CORS 进行跨域资源共享

SpringBoot 如何使用 CORS 进行跨域资源共享 在 Web 开发中,跨域资源共享(CORS)是常见的问题之一。CORS 是一种安全机制,用于限制跨域请求对目标服务器的访问。在本文中,我们将介绍如何在 Spring Boot 中使用 CORS 进…

【Y 新闻】YMatrix 成立三周年,三岁的我们还真是“不简单”

三年的时间足够短,眨眼间我们已不知不觉度过了数个三年;但是三年的时间也足够长,这期间足够一个人完成从学校到社会的过渡,也足够一家企业实现从青涩到成熟的转变。 转眼到了 2023 年 8 月 24 日,是 YMatrix 成立后的…

中秋国庆双节邮件营销怎么做?看这里!

今年的国庆节恰逢中秋节,因此国家假日办安排国庆中秋连放8天。对于打工人来说,超长的假期是外出旅游、回家探亲好时机,可是对于企业来说,却是一次仅次于春节的营销大战。这个时候企业营销人员当然是要借助各种营销手段来获取流量和…

go语言基础操作---七

socket简单介绍—套接字编程 什么是Socket Socket,英文含义是【插座、插孔】,一般称之为套接字,用于描述IP地址和端口。可以实现不同程序间的数据通信。 Socket起源于Unix,而Unix基本哲学之一就是“一切皆文件”,都可…

YOLO目标检测——口罩规范佩戴数据集+已标注xml和txt格式标签下载分享

实际项目应用:目标检测口罩佩戴检测数据集的应用场景涵盖了公共场所监控、疫情防控管理、安全管理与控制以及人员统计和分析等领域。这些应用场景可以帮助相关部门和机构更好地管理口罩佩戴情况,提高公共卫生和安全水平,保障人们的健康和安全…

Kubernetes 使用configmap挂载卷给Pod内的nginx容器

目录 实验:使用configmap挂载卷给Pod内的nginx容器 1、创建nginx.conf配置文件(必须由nginx镜像里的nginx.conf修改而来,防止出现配置不相似的情况出现,导致访问不了nginx网页) 2、通过nginx.conf文件创建configmap容…

【C++刷题】经典简单题第二辑

回文排列 class Solution { public:bool canPermutePalindrome(string s) {// 记录字符出现的次数int count[256] {0};for(size_t i 0; i < s.size(); i)count[s[i]];// 记录字符出现次数为奇数的个数int flag 0;for(size_t i 0; i < 256; i)if(count[i] % 2 1)f…

yolov5权重文件.pt转.bin文件

参考链接&#xff1a;YOLOv5学习记录(二): 模型转化及Android端部署_yolo .pt文件转未bin_Xiaoer__Lu的博客-CSDN博客 1、准备pt文件 我的目录是&#xff1a;C:\Users\Administrator\Desktop\driving\yolov5-mask-42-master\runs\train\exp_yolov5s\weights里的best.pt 2、p…

算法:贪心---跳一跳

1、题目&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 2…

云养殖模式:让养殖业走向智慧化、高效化、绿色化

养殖业是我国农业的重要组成部分&#xff0c;也是农民增收的重要来源。然而&#xff0c;传统的养殖方式存在着许多问题&#xff0c;如水环境污染、病害频发、市场风险高、管理落后等&#xff0c;导致养殖效益低下&#xff0c;难以适应现代消费者的需求。如何改变这种局面&#…

Java基础(二十三):反射(reflection)

文章目录 一、反射机制1.1 快速入门1.2 反射机制原理 二、反射相关类三、反射调用性能优化四、Class类4.1 基本介绍4.2 使用4.3 哪些类型有Class对象 五、类加载六、获取类的结构信息七、反射-创建实例、操作属性和方法&#xff08;爆破&#xff09; 一、反射机制 1.1 快速入门…

自然语言处理应用(三):微调BERT

微调BERT 微调&#xff08;Fine-tuning&#xff09;BERT是指在预训练的BERT模型基础上&#xff0c;使用特定领域或任务相关的数据对其进行进一步训练以适应具体任务的需求。BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种基于Tr…

【强化学习篇】on-policy 和 off-policy 的区别

本质区别&#xff1a; 要学习的 agent 跟和环境互动的 agent 是同一个&#xff0c;是on-policy(同策略) 要学习的 agent 跟和环境互动的 agent 不是同一个&#xff0c;是off-policy(异策略) on-policy 与 off-policy值函数&#xff1a; on-policy与off-policy区别是&#xf…