【java学习—十三】处理流之二:转换流(2)

news/2024/11/30 9:44:14/

文章目录

  • 1. 相关概念
  • 2. 转换输入流
  • 3. 转换输出流


1. 相关概念

转换流提供了在字节流字符流之间的转换

Java API 提供了两个转换流:
    InputStreamReaderOutputStreamWriter
    当字节流中的数据都是字符时,转成字符流操作更高效。

InputStreamReader
    用于将字节流中读取到的字节按指定字符集解码成字符。需要和FileInputStream“ 套接”。

OutputStreamWriter
    用于将要写入到字节流中的字符按指定字符集编码成字节。 需要和 FileOutputStream“ 套接”。

2. 转换输入流

举例:
    将tt5.txt文件中的内容输出到控制台。其中tt5.txt里面的内容是“会当凌绝顶”。

package day13;import java.io.FileInputStream;
import java.io.InputStreamReader;/*** 转换流* 可以把字节流转换为字符流* 当字节流中的数据都是字符的时候,使用转换流转为字符流处理效率更高* @author 14532*/public class Test2 {public static void main(String[] args) {//所有的文件都是有编码格式的//对于我们来说,txt和java文件一般来讲有三种编码//ISO8859-1,西欧编码,是纯粹英文编码,不适应汉字//GBK和UTF-8,这两编码是适用于中文和英文//我们一般使用UTF-8编码try {Test2.testInputStreamReader();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 转换输入流为字符输入流* 在转换字符流的时候,设置的字符集编码要与读取的文件的数据编码格式一致,不然就会出现乱码* InputStreamReader*/public static void testInputStreamReader() throws Exception{FileInputStream fs = new FileInputStream("D:\\java_doc\\eclipse-workspace\\demo\\src\\day13\\tt5.txt");//把字节流转换为字符流InputStreamReader in = new InputStreamReader(fs, "UTF-8");//参数1是字节流,参数2是编码格式char[] c = new char[100];int len = 0;while((len = in.read(c)) != -1) {System.out.println(new String(c, 0, len));}in.close();fs.close();}
}

运行结果:
在这里插入图片描述

3. 转换输出流

举例:
    将“你好你好”字符串输出到tt6.txt文件中

package day13;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class Test2 {public static void main(String[] args) {//所有的文件都是有编码格式的//对于我们来说,txt和java文件一般来讲有三种编码//ISO8859-1,西欧编码,是纯粹英文编码,不适应汉字//GBK和UTF-8,这两编码是适用于中文和英文//我们一般使用UTF-8编码try {
//			Test2.testInputStreamReader();Test2.testOutputStreamWriter();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}	/*** 转换字节输出流为字符输出流* 在转换字符流的时候,设置的字符集编码要与读取的文件的数据编码格式一致,不然就会出现乱码* OutputStreamWriter*/public static void testOutputStreamWriter() throws Exception{FileOutputStream out = new FileOutputStream("D:\\java_doc\\eclipse-workspace\\demo\\src\\day13\\tt6.txt");OutputStreamWriter os = new OutputStreamWriter(out, "UTF-8");os.write("你好你好");os.flush();os.close();out.close();}}

http://www.ppmy.cn/news/1200270.html

相关文章

判断表达式中开闭括号是否配对出现。运用栈实现表达式开、闭括号是否配对出现算法

判断表达式中开闭括号是否配对出现。运用栈实现表达式开、闭括号是否配对出现算法 算法思想: 每次扫描到一个左括号就入栈,扫描到右括号就出一个栈顶元素,看括号类型是否匹配。 如果某次扫描到右括号发现栈中已无元素可出,则匹配…

性能工作站,双十一大促,超值推荐:蝰蛇峡谷 NUC12SNKi7迷你主机,优惠抢购!

近年来,ITX主机和小型化系统变得越来越受欢迎。英特尔的NUC受到许多玩家们的关注。作为mini主机的代表NUC小巧设计和灵活性使它成为很多玩家和科技爱好者的选择。它的高性能和可玩性使得它在迷你型准系统市场上备受推崇。双11来临之际,我们分析下哪款高性…

软件外包开发需要注意的问题

软件外包开发是一种常见的商业实践,可以帮助企业降低成本、提高效率和获得专业技能。然而,要确保成功的外包开发项目,需要注意以下一些关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司…

048基于web+springboot的校园资料分享平台

欢迎大家关注,一起好好学习,天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本校园资料分享平台有管理员和用户两个角色。管理员功能有个人中心,学生管理,资料分享管理,资源分…

安达发|APS生产排程解决五金制造企业的需求

在五金制造行业中,生产排程一直是一个非常重要的环节。然而,由于五金行业的特点和痛点,传统的生产排程方法往往难以满足企业的需求。本文将针对五金行业的痛点,探讨如何利用APS生产排程解决这些问题。 首先,我们需要了…

java线程实现服务器与客户端互发消息

线程实现服务器与客户端互发消息 如果不用多线程来实现服务器与客户端互发消息则当一方发完消息后另一方才可以发,如果用了线程,因为多个线程可以同时执行,只要把发送和接收两个方法放入线程中让他们同时执行就可以实现服务器与客户端互发消…

187. 重复的DNA序列 --力扣 --JAVA

题目 DNA序列 由一系列核苷酸组成,缩写为 A, C, G 和 T.。 例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时,识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次…

鲜花展示预约小程序的内容有有哪些

鲜花店市场规模非常高,一方面是鲜花的用途广泛且需求量增加,另一方面则是入行门槛低,很多城市一条街就有可能汇聚了多家门店,尤其是节假日,对客流量高的门店则更加考验,如花束选购预约、信息展示及客户咨询…