字符集及其编码、解码操作、IO流分类

字符集

1、ASCII字符集:一个字节(8位)存储一个字符(大小写字母,数字或特殊符号)
2、ASCII字符集中一个字节八位实际有效的只有后七位,第一位都是0
3、GBK字符集(汉字内码扩展规范,国标)包括了ASCII,两个字节存储一个汉字字符
4、GBK规定:汉字的第一个字节的第一位必须是1,与ASCII第一位必须是0区分开来,用于在一句话中区分ASCII(一个字节)和GBK(两个字节)
5、Unicode字符集(统一码,也叫万国码),UTF-32字符集每四个字节表示一个字符,虽然容纳的多,但是占空间多,通信效率变低


6、UTF-8字符集是Unicode字符集的一种编码方案,长度区分1个字节、2个字节、3个字节、4个字节。技术

要点回顾

字符编码和解码时使用的字符集必须一样,否则会出现乱码,

字符集的编码、解码操作

packagecom.itheima.demo3character;importjava.io.UnsupportedEncodingException;importjava.nio.charset.Charset;importjava.util.Arrays;publicclassCharSetDemo1{publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{//目标:写程序实现字符编码和解码//1、编码(成字节形式,再转化成十进制)Stringname="本尊!!!";byte[]bytes=name.getBytes("GBK");//指定GBK进行编码System.out.println(bytes.length);//7System.out.println(Arrays.toString(bytes));//[-79, -66, -41, -16, 33, 33, 33]//2、解码(成我能看懂的)//String name2 = new String(bytes);//编码与解码不一致,会乱码Stringname3=newString(bytes,"GBK");//指定GBK进行解码//System.out.println(name2);//����!!!System.out.println(name3);//本尊!!!}}

IO流

I指Input,称为输入流:富足把数据读到内存中去
O指Ouput,称为输出流:负责写数据出去

IO流的分类

IO流的体系:字节输入流、字节输出流、字符输入流、字符输出流

小结

IO流-文件字节输入流

1、字节输入流InputStream、字节输出流OutputStream、字符输入流Reader、字符输出流Writer都是抽象类
2、FileInputStream、FileOutputStream、FileReader、FileWriter是对应以上的实现类


3、文件字节输入流FileInputStream的作用是把磁盘文件中的数据以字节的形式读入到内存中去

packagecom.itheima.demo4fileinputstream;importjava.io.*;publicclassFileInputDemo1{publicstaticvoidmain(String[]args)throwsIOException{//目标:掌握文件字节输入流读取文件中的字节数组到内存中来//1、创建文件字节对象 输入流管道于源文件接通InputStreamis=newFileInputStream(newFile("day03-file-io\\src\\lll02"));//2、创建文件字节路径 输入流管道与源文件接通//InputStream is2 = new FileInputStream("day03-file-io\\src\\lll02");//两个是一样的,简化写法InputStreamis2=newFileInputStream("day03-file-io\\src\\lll03");//3、读取文件中的字节并输出//定义一个变量记住每次读取的一个字节intb;while((b=is.read())!=-1)//按顺序判断内容对应的ASCII字符是否等于-1{System.out.print((char)b);}//每次读取一个字节的问题,性能较差,读取汉字输出一定会乱码//4、读取文件中的字节数组并输出,每次读取多个字节//定义一个字节数组,每次读取多个字节byte[]bytes=newbyte[3];//定义一个变量记住每次读取多少个字节,读取多少倒多少intlen;while((len=is2.read(bytes))!=-1){System.out.println(newString(bytes,0,len));//abc//666//g}}}

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

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

相关文章

深入解析:多台西门子PLC控制器与SQL数据库对接(带边缘计算)的案例

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Day46 >> 647. 回文子串 + 516.最长回文子序列

代码随想录-动态规划Part13 647. 回文子串 class Solution {public int countSubstrings(String s) {boolean[][] dp new boolean[s.length()][s.length()];int res 0;for (int i s.length() - 1; i > 0; i--) {for (int j i; j < s.length(); j) {if (s.charAt(i)…

Day45 >> 115、不同的子序列 + 583. 两个字符串的删除操作 + 72. 编辑距离

代码随想录-动态规划Part12 115.不同的子序列 class Solution {public int numDistinct(String s, String t) {int[][] dp new int[s.length() 1][t.length() 1];for (int i 0; i < s.length() 1; i) {dp[i][0] 1;}for (int i 1; i < s.length() 1; i) {for (i…

为什么还是有那么多人不穿使用尼龙搭扣的鞋?

为什么还是有那么多人不穿使用尼龙搭扣的鞋&#xff1f;为什么尼龙搭扣鞋没能成为主流&#xff1f;—— 舒适、场景与心理偏好的三重选择逻辑尼龙搭扣鞋&#xff08;魔术贴鞋&#xff09;凭借穿脱便捷的优势&#xff0c;至今仍被用于童鞋、老人鞋和运动拖鞋等品类&#xff0c;但…

伪随机的简单绕过

伪随机数 在二进制分析中,会遇到很多很多伪随机数生成的问题,对于伪随机数,我们需要进行绕过,这里系统的总结一下伪随机数的绕过的思路 我们使用random直接进行随机数生成的话效果是不对的 random.seed() rand_num…

Vim中复制内容到系统剪贴板

设置Vim 检查 Vim 是否支持 +clipboard(即让 Vim 能直接读写系统剪贴板) vim --version | grep clipboard如果你看到 +clipboard:恭喜,你的 Vim 已经支持了如果你看到 -clipboard(前面是减号):说明你当前安装的…

《2026:全球 AI 工程化白皮书》

前言&#xff1a;消失的红利与浮现的真相2023年&#xff0c;全世界都在谈论“奇点临近”&#xff1b;2024年&#xff0c;我们在“百模大战”中目不暇接。然而&#xff0c;当时间进入2025与2026年的交汇点&#xff0c;喧嚣的潮水开始退去&#xff0c;一个冷酷的真相摆在所有企业…

电磁阀的工作原理

1、P端是进气口&#xff0c;也就是输入端&#xff0c;也就是气从这个口进&#xff0c;这个气将被用来控制气缸的伸出和缩回2、P -> A是常通&#xff0c;P -> B是常断3、由于P->A是常通的&#xff0c;所以只要P端进气&#xff0c;A端就会有气&#xff0c;此时气缸的杆是…

百货商店楼层布局的秘密:男装在下、女装在上的商业逻辑

为什么大多数百货商店把男装摆在较低楼层&#xff0c;而女装摆在较高楼层呢&#xff1f;百货商店楼层布局的秘密&#xff1a;男装在下、女装在上的商业逻辑大多数百货商店将男装布局在较低楼层&#xff0c;女装放在较高楼层&#xff0c;并非随机安排&#xff0c;而是基于消费行…

Spring Cloud 集成 Nacos,全面的配置中心与服务发现解决方案

大家好&#xff0c;我是小悟。 一、Nacos 详细介绍 1.1 什么是 Nacos Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一款集服务发现、配置管理和服务管理于一体的平台。Nacos 的名字来源于 Naming and Configuration Service 的缩写…

spring boot中异常日志输出:log.error(“【文件上传】失败,{},{}“, endpoint, method, e);最后的e是异常对象,会输出堆栈信息

澄清&#xff1a;SLF4J 的特殊处理规则SLF4J 确实允许最后一个参数是 Throwable 类型&#xff0c;即使没有对应的占位符&#xff01;您的写法&#xff1a;javalog.error("【文件上传】失败&#xff0c;{}&#xff0c;{}", endpoint, method, e);这是完全正确的&#…

深入解析:JMeter的基本使用与性能测试

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

女装标号、男装量体:美国服装尺码差异背后的产业与消费逻辑

为什么美国销售的女装按标号尺寸表示大小&#xff0c;而男装却直接采用测量尺寸呢&#xff1f;女装标号、男装量体&#xff1a;美国服装尺码差异背后的产业与消费逻辑美国服装市场里女装用标号&#xff08;如 0、2、4 号或 S、M、L&#xff09;&#xff0c;男装却直接标注测量尺…

科研 / 工业采购必看:国产高端仪器品牌 + 上市公司实力盘点 - 品牌推荐大师1

科研与工业采购必看:国产高端仪器品牌与上市公司实力全解析 在科学研究与工业生产的核心环节,精密分析仪器扮演着“眼睛”与“标尺”的关键角色。其中,检漏仪、离子色谱仪、液相色谱仪和液质联用仪是四大重要工具。…

禁止win11自动更新,禁止windows更新的工具软件方法教程攻略

您可以通过多种方法禁止Windows 11的自动更新&#xff0c;包括修改设置、服务管理、组策略、注册表和利用禁止windows更新工具等。 每个方法&#xff0c;各有特点&#xff0c;想要方便快捷&#xff0c;直接用方法6的工具。下面逐个讲解 Win11彻底关闭系统自动更新的6种方法&…

从城市运管到灾害救援:2026年好用的应急调度系统场景推荐 - 速递信息

应急调度系统的价值,终需在具体场景中检验。从城市日常运管的精细治理到灾害救援的极限挑战,不同场景对系统提出了截然不同的要求。本文跳出技术参数堆砌,深入城运中心、自然灾害前线等典型场景,推荐那些经过实战验…

基于多鱼眼的视觉SLAM系统(毕业论文)

【摘 要】 同时定位与建图&#xff08;Simultaneous Localization and Mapping&#xff0c;SLAM&#xff09;&#xff0c;是目前智能机体自主定位的主流技术&#xff0c;能够持续获取环境信息并实时预估系统位姿信息&#xff0c;得到较为准确的环境地图与移动轨迹。伴随着计算机…

Nginx http模块配置详解

http {include /etc/nginx/mime.types; # MIME类型default_type application/octet-stream;# 日志格式log_format main $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"…

Polar靶场web 随写笔记 - 指南

Polar靶场web 随写笔记 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

Nginx http模块配置详解

http {include /etc/nginx/mime.types; # MIME类型default_type application/octet-stream;# 日志格式log_format main $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"…