重学java 66.IO流 转换流

news2024/10/6 20:34:59

且敬我疯狂,生命中不败的篇章

                                        —— 24.6.11

一、字符编码

        计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。[按照某种规则,将字符存储到计算机中,称为编码。]反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为“解码”。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。

        字符编码 character Encoding:就是一套自然语言的字符二进制数之间的对应规则

二、字符集

        字符集 charset:也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。

        计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBK字符集、Unicode字符集等。

        1.想要不乱码,编码和解码遵循的规则(字符编码)要一致,想要不乱码,最重要的是先知道这个字符按照什么编码去存的
        2.UTF-8中一个汉字占3个字节,GBK中一个汉字占2个字节

三、转换流 InputStreamReader

1.概述:

        是字节流通向字符流的桥梁 —> 读数据

2.构造:

        InputStreamReader(InputStream in,String charsetName)
                charsetName:指定编码,不区分大小写

3.作用:

        可以直接指定编码,按照指定的编码去内容

4.用法:

        基本用法和FileReader一样

5.示例:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo277InputStreamReader {
    public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\2LFE\\Desktop\\IO转换流.txt"),"GBK");
        int data = isr.read();
        System.out.println((char)data);
        isr.close();
    }
}

四、转换流 OutputStreamWriter

1.概述:

        是字符流通向字节流的桥梁 —> 写数据

2.构造:

        OutputstreamWriter(OutputStream out,String charsetName)        

3.作用:

        按照指定的编码规则去数据

4.用法:

        和Filewriter一样

5.示例:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Demo278OutputStreamReader {
    public static void main(String[] args) throws IOException {
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("AllWillBest_Java/src/S97IOReserveStream\\output.txt"), "UTF-8");
        osw.write("一切都会好的");
        osw.close();
    }
}

 

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

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

相关文章

10_3、C++继承与派生:派生类成员访问

派生类成员访问 作用域分辨符虚基类概念及用法虚基类派生类的构造函数 赋值兼容规则 作用域分辨符 如果派生类中存在和基类中完全相同的函数,将发生同名覆盖。如果在派生类中存在一个和基类某数据成员同名的数据成员,或者和基类某成员函数的名称和参数表…

采用PHP语言(医院安全不良事件上报系统源码)医院不良事件 各类事件分析、分类、处理流程

医疗安全不容忽视! 医疗安全(不良)事件是指在临床诊疗活动中以及医院运行过程中,任何可能影响患者的诊疗结果、增加患者的痛苦和负担并可能引发医疗纠纷或医疗事故,以及影响医疗工作的正常运行和医务人员人身安全的因…

我给KTV服务生讲解防抖,他竟然听懂了

端午节三天假期,的最后一天,我和朋友闲来无事,想着去唱会儿歌吧,好久不唱了,于是吃了午饭,石景山就近找了一家KTV,我们团好了卷就过去了。 装修还算不错,很快找到服务生&#xff0c…

【创建SpringBoot项目常见问题】保姆级教程(踩过的坑)

文章目录 特别提醒无效目标发行版 18类文件具有错误的版本 61.0, 应为 52.0Spring 项目运行,控制台乱码Spring 配置文件乱码引入插件,idea找不到 在创建第一个SpringBoot项目时,我出现了很多的配置错误,接下来与大家分享一下解决方法。希望我…

讯方技术与华为终端签署鸿蒙合作协议,将为企业助培百万鸿蒙人才

1月18日,鸿蒙生态千帆启航仪式在深圳举行,华为宣布HarmonyOS NEXT鸿蒙星河版开发者预览面向开发者开放申请,这意味着鸿蒙生态进入第二阶段,将加速千行百业的应用鸿蒙化。讯方技术总裁刘国锋、副总经理刘铭皓应邀出席启航仪式&…

基于esp8266_点灯blinker_智能家居

文章目录 一 实现思路1 项目简介2 项目构成3 代码实现4 外壳部分 二 效果展示UI图片 一 实现思路 摘要:esp8266,mixly,点灯blinker,物联网,智能家居,3donecut 1 项目简介 1 项目效果 通过手机blinker app…

17- Redis 中的 quicklist 数据结构

在 Redis 3.0 之前,List 对象的底层数据结构是双向链表或者压缩列表,然后在 Redis 3.2 的时候,List 对象的底层改由 quicklist 数据结构实现。 其实 quicklist 就是【双向链表 压缩列表】组合,因为一个 quicklist 就是一个链表&…

解锁 DevOps 精通:成功的综合指南

在动态的软件开发领域,要掌握 DevOps,需要对其核心原则有细致的了解,并采取战略性实施方法。DevOps 是一种协作方法,它将软件开发 (Dev) 和 IT 运营 (Ops) 结合起来,以自动化和简化软件交付流程。它旨在缩短开发周期、…

双模蓝牙芯片TD5165A功能介绍—拓达半导体

拓达芯片TD5165A是一颗支持U盘&TF卡的双模蓝牙芯片,此颗芯片的亮点在于同时支持音频蓝牙与BLE数传,芯片在支持蓝牙无损音乐播放的同时,还支持 APP和小程序,通过BLE通道对芯片进行控制,同时也支持通过蓝牙串口透传数…

抖动的评估(TJ 和 TIE 的关系)

TIE:时间间隔误差(Time Interval Error,简称TIE)抖动,即在很长的一串波形中,每次边缘的位置相对理想clk 的抖动。 TJBER :TJ(Total Jitter)总体抖动,为某误码率(Bit Error Ratio&am…

网络流常用示意图及基本概念

【网络流简介】 ● 网络流基本概念网络:网络是一个有向有权图,包含一个源点和一个汇点,没有反平行边。网络流:是定义在网络边集上的一个非负函数,表示边上的流量。网络最大流:在满足容量约束和流量守恒的前…

..\USER\stm32f10x.h(298): error: #67: expected a “}“

原keil4的示例工程在用keil5打开之后出现报错: ..\USER\stm32f10x.h(298): error: #67: expected a "}" 在去掉手动添加的一个宏定义STM32F10X_HD后即可正常编译,因为KEIL5已经自动添加了

VR 大厦巡检机器人:开启智能化巡检新时代

在现代城市的高楼大厦中,保障建筑物的安全和功能正常运作是至关重要的。随着建筑结构日益复杂,隐蔽角落和繁杂管道线路的存在使得传统人工巡检面临诸多挑战和局限。电路老化、狭窄通道、拐角等潜在安全隐患,往往难以通过人工巡检完全覆盖&…

【STM32HAL库学习】定时器功能、时钟以及各种模式理解

一、文章目的 记录自己从学习了定时器理论->代码实现使用定时->查询数据手册,加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。 上图为参考手册里通用定时器框图,关于定时器各种情况的工作都在上面了,在理论学习和实际应用后…

spring常用注解(八)@Async

一、介绍 1、介绍 二、原理 三、集成与使用 1、集成方法 &#xff08;1&#xff09;开启 使用以下注解开启 EnableAsync &#xff08;2&#xff09;使用 在需要异步处理的方法上加上 Async 2、返回值 Async注解的方法返回值只能为void或者Future<T>。 &…

轻松实现App推广代理结算,Xinstall超级渠道功能助您一臂之力!

在App推广的广阔天地中&#xff0c;与渠道方建立合作关系&#xff0c;共同实现用户增长和品牌提升&#xff0c;已成为众多开发者和广告主的共识。然而&#xff0c;如何高效管理这些渠道、监测推广效果、实现代理结算&#xff0c;一直是困扰大家的难题。今天&#xff0c;我们就来…

比较器 XD393 XINLUDA(信路达) DIP-8 2.5mA 模拟比较器 双路差动

XD393是一款比较器集成电路&#xff0c;适用于各种电子设备中的信号比较和处理。它的应用领域可能包括但不限于以下几个方面&#xff1a; 1. 电源管理&#xff1a;在电源管理系统中&#xff0c;XD393可以用来监控电压水平&#xff0c;确保系统稳定运行&#xff0c;或者触发某…

振动分析-2-信号频域分析以及频率分辨率的理解

参考2023-11-26 什么是频率&#xff1f; 参考2016-10-31什么是固有频率&#xff1f; 参考2024-01-28什么是频率分辨率&#xff1f; 参考2024-01-07香农采样定理有两种描述&#xff0c;哪个正确&#xff1f; 1 什么是频率 1.1 频率的定义 我们把振动发生完成一个完整往复循环…

利用 AI 深度学习,实现化合物配比最优化解决方案

为什么需要化合物配比的优化&#xff1f; 在化合物制造行业中&#xff0c;化合物的配比是产品质量控制的关键环节。 化合物制造流程 目前&#xff0c;这一过程高度依赖于材料专家和工程技术人员的经验&#xff0c;通过反复试验来验证产品性能&#xff0c;确保其满足市场和客户的…

Redis实现分布式锁有哪些方案?

Redis实现分布式锁有哪些方案&#xff1f; 在这里分享六种Redis分布式锁的正确使用方式&#xff0c;由易到难。 本文已收录到Java面试网站 方案一&#xff1a;SETNXEXPIRE 方案二&#xff1a;SETNXvalue值(系统时间过期时间) 方案三&#xff1a;使用Lua脚本(包含SETNXEXPIRE…