Java: 转换流

转换流

1.定义

是字符流和字节流之间的桥梁。
分为:

  • 字符转换输入流(InputStreamReader
  • 字符转换输出流(OutputStreamWrite

2.作用

1.作用1:指定字符集读写

在jdk11时,这种方式被淘汰了。
案例1:利用转换流按照指定字符编码读取

 //创建对象并指定字符编码InputStreamReader isr = new InputStreamReader(new FileInputStream("G:\\JavaReview\\day33\\gbktxt.txt"), "GBK");//读取数据int ch;while ((ch = isr.read()) != -1) {System.out.print((char) ch);}//释放资源isr.close();

JDK11以后的代替方案为:

        FileReader fr = new FileReader("G:\\\\JavaReview\\\\day33\\\\gbktxt.txt", Charset.forName("GBK"));//读取数据int ch;while ((ch = fr.read()) != -1) {System.out.print((char) ch);}//释放资源fr.close();

案例3:使用转换流写出不同编码的文件

        //创建转换流对象
//        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("G:\\JavaReview\\day33\\gbktxt.txt"),"GBK");FileWriter fw = new FileWriter("G:\\JavaReview\\day33\\a.txt", Charset.forName("GBK"));//写入数据fw.write("你好");fw.close();

案例4:将本地文件中的GBK文件,转换成UTF-8
JDK11以前:

        //JDK11以前InputStreamReader isr = new InputStreamReader(new FileInputStream("G:\\JavaReview\\day33\\a.txt"),"GBK");OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("G:\\JavaReview\\day33\\b.txt"),"UTF-8");int ch;while ((ch = isr.read()) != -1){osw.write(ch);}osw.close();isr.close();

JDK11以后:

        FileReader fr = new FileReader("G:\\JavaReview\\day33\\a.txt", Charset.forName("GBK"));FileWriter fw = new FileWriter("G:\\JavaReview\\day33\\c.txt");int b;while ((b = fr.read()) != -1){fw.write(b);}fw.close();fr.close();

2.作用2:字节流想要使用字符流中的方法

案例1:读取文件中的每一行,打印在控制台

        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("G:\\JavaReview\\day33\\c.txt")));String line;while ((line = br.readLine()) != null){System.out.println(line);}br.close();

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

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

相关文章

.NET各版本支持的操作系统

借助虚拟机和测试机,检测各版本操作系统对.NET的支持情况。 安装操作系统后,实测安装相应运行时并能够运行星尘代理为通过。 测试平台:VMware Workstation 镜像来源:MSDN I Tell You 参考: .NET Framework 版本和…

WebGL 概念和基础入门

WebGL 概念和基础入门 WebGL 是什么 对于 WebGL 百度百科给出的解释是 WebGL 是一种 3D 绘图协议,而对此维基百科给出的解释却是一种 JavaScript API。由于 WebGL 技术旨在帮助我们在不使用插件的情况下在任何兼容的网页浏览器中开发交互式 2D 和 3D 网页效果&…

使用redis RedisAtomicLong 生成订单号

背景 产品需求要生成有序的订单 key 年月日时分秒 6位序号 由00001-99999组成 且每天都是从00001开始 公司系统有部署多台服务,这需要一个有序的序列不能重复而且得保证获取时的原子性这里 我们考虑使用了redis Incr 这个命令 Redis Incr 命令能将 key 中储存的数…

react 实现小球加入购物车动画

代码 import React, { useRef } from react;const ProductLayout () > {const box useRef(null);const createBall (left, top) > {const ball document.createElement(div);ball.style.position absolute;ball.style.left left - 10 px;ball.style.top top - 1…

【机器学习】了解 AUC - ROC 曲线

一、说明 在机器学习中,性能测量是一项基本任务。因此,当涉及到分类问题时,我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时,我们使用AUC(曲线下面积)ROC(接收器工作特…

使用 Vue 创建一个简单的 Loading 动画

使用 Vue 创建一个简单的 Loading 动画 1. 开始之前 确保 正确安装了 Vue 3知道如何启动一个新的 Vue 项目(或在项目中使用Vue)了解 Vue 3 的 Composition API(本文将使用) 2. 设计组件 该组件应该包含三个部分 控制逻辑旋转…

win10 安装 langchain-chatglm 遇到的问题

win10 安装 langchain-chatglm 避坑指南(2023年6月21日最新版本)_憶的博客-CSDN博客官网看起来安装很简单,网上教程也是,但实际上我耗费了两天时间,查阅了当前网络上所有可查阅的资料,重复「安装-配置-卸载…

Spring Security 构建基于 JWT 的登录认证

一言以蔽之,JWT 可以携带非敏感信息,并具有不可篡改性。可以通过验证是否被篡改,以及读取信息内容,完成网络认证的三个问题:“你是谁”、“你有哪些权限”、“是不是冒充的”。 为了安全,使用它需要采用 …

HideSeeker论文阅读

文章目录 3.1 Overview of Our System HideSeeker3.2 Visual Information Extraction3.3 Relation Graph Learning3.4 Hidden Object Inference 4 EVALUATIONS4.7 Summary 6 DISCUSSIONS AND CONCLUSION 3.1 Overview of Our System HideSeeker 我们设计了一种名为“HideSeeke…

个人博客系统(SSM版 前端+后端)

前言 在学习Servlet的时候,也写了一个博客系统,主要的就是使用servelet加Tomcat进行实现的,而这个项目 仅仅适合去学习Web项目开发的思想,并不满足当下企业使用框架的思想,进行学习过Spring,Spring Boot,Spring MVC以及MyBatis之后,我们就可以对之前的项目使用SSM框架的形式进行…

95、Kafka是pull?push?优劣势分析

Kafka是pull?push?优劣势分析 一、pull模式二、push模式三、额外补充 一、pull模式 根据consumer的消费能力进行数据拉取,可以控制速率可以批量拉取、也可以单条拉取可以设置不同的提交方式,实现不同的传输语义 缺点: 如果kafka…

webpack环境配置的问题

1.如何区分不同的配置 // vue.config.js 中定义不同配置项 module.exports {// 默认配置// ...// 开发环境配置dev: {// ...},// 生产环境配置prod: {// ...} };// 在运行 vue-cli-service 命令时,在package.json中设置不同配置 {"scripts": {"ser…

react+redux异步操作数据

reactredux异步操作数据 redux中操作异步方法,主要是: 1、借助createAsyncThunk()封装异步方法;2、通过extraReducers处理异步方法触发后的具体逻辑,操作派生的state 1、异步操作的slice import { createSlice, createAsyncThunk…

uniapp 之 微信小程序、支付宝小程序 对于自定义导航栏的不同

目录 前言 微信小程序 代码 支付宝小程序 首页配置文件 二级菜单页面 配置 总结 不同 相同 前言 小程序都是 uni-app 写的 不是原生 微信小程序 代码 pages.json文件中配置 重点: "navigationStyle": "custom", // 导航栏样式…

【N32L40X】学习笔记05-串口库(空闲中断+接收非空中断)

串口 该函数库的目的就是在统一的地方配置&#xff0c;将配置的不同项放置在一个结构体内部使用一个枚举来定义一个的别名 bsp_uart.h #ifndef _BSP_UART_H_ #define _BSP_UART_H_ #include<stdio.h> #include<stdint.h> #include "n32l40x.h"#define…

ChatGPT开放自定义系统级别的指令,可设置偏好变成专属助理

OpenAI官方消息https://openai.com/blog/custom-instructions-for-chatgpt OpenAI为其大型语言模型接口ChatGPT引入了自定义指令&#xff0c;旨在为用户提供更加量身定制和个性化的体验&#xff0c;可以设置您的偏好&#xff0c;ChatGPT将在未来的所有对话中记住它们。 该功…

Redis高可用部署架构

目录 1. 主从复制与哨兵架构&#xff1a;2. Redis集群架构&#xff1a; Redis高可用部署可以采用主从复制与哨兵架构或Redis集群架构。下面将分别介绍这两种架构的架构图、优缺点和具体应用场景。 1. 主从复制与哨兵架构&#xff1a; 架构图&#xff1a; ----------| Client…

Python—数据结构(一)

先放一张自己学习和整理归纳的思维导图&#xff0c;以便让大家都知道我自己的整体学习路线。 数据结构的学习路上内容枯燥&#xff0c;但坚持下来一定有很大的收获&#xff01;加油&#x1f4aa;&#x1f3fb;&#xff01; 数据结构 数据的概念数据元素&#xff1a; 若干基本…

Go语言通过反射获取各种类型变量的值

Go语言通过反射获取各种类型变量的值 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 1、什么是反射 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang 反射包中有两对非常重要的函数和类型&#xff0c;两个函数分别是&a…

音视频开发-ffmpeg介绍-系列二

目录 一、FFmpeg核心结构体 二、解码流程 三、FFmpeg解码实现 四、FFmpeg编码实现 五、FFmpeg转码实现 一、FFmpeg核心结构体 AVFormatContext&#xff1a;解封装功能的结构体&#xff0c;包含文件名、音视频流、时长、比特率等信息&#xff1b; AVCodecContext&#xf…