【JAVA IO流之转换流OutputStreamWriter和InputStreamReader】

java字符流的底层还是使用字节流实现的,所以字节流时刻转换为字符流的。转换流主要使用到

OutputStreamWriter:将字节输出流转换为字符输出流形式

InputStreamReader:将输入的字节流转换为字符流输入形式

1.OutputStreamWriter(字节输出流-->字符输出流)

OutputStreamWriter是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码

构造方法:

OutputStreamWriter os = new OutputStreamWriter(OutputStream out);//构造一个默认编码集

OutputStreamWriter os= new OutputStreamWriter(OutputStream out,String charsetName);//构造一个指定编码集的OutputStreamWriter类。

示例代码:

  1. public static void main(String[] args) {
  2. try {
  3. //构建一个字节输出流
  4. OutputStream os=new FileOutputStream("L:\\test.txt");
  5. String dataString="好好学习,天天向上!";
  6. //通过字节输出流创建字符输出流
  7. Writer w=new OutputStreamWriter(os);
  8. w.write(dataString);//输出到文件
  9. //关闭流
  10. w.close();
  11. os.close();
  12. } catch (FileNotFoundException e) {
  13. e.printStackTrace();
  14. } catch (IOException e) {
  15. // TODO Auto-generated catch block
  16. e.printStackTrace();
  17. }
  18. }

复制代码

2.InputStreamReader(字节输入流-->字符输入流)

InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码。

构造方法:

InputStreamReader isr = new InputStreamReader(InputStream in);//构造一个默认编码

InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//构造一个指定编码集的InputStreamReader类。

示例代码:

  1. public static void main(String[] args) {
  2. try {
  3. //构建一个字节输入流
  4. InputStream is=new FileInputStream("L:\\test.txt");
  5. //通过字节输入流构建字符输入流
  6. Reader r=new InputStreamReader(is);
  7. //顺便用下缓冲流
  8. BufferedReader br=new BufferedReader(r);
  9. //读出一行数据
  10. System.out.println(br.readLine());
  11. //关闭流
  12. br.close();
  13. r.close();
  14. is.close();
  15. } catch (FileNotFoundException e) {
  16. e.printStackTrace();
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. }

复制代码

运行结果:

时间: 2024-12-13 13:33:01

【JAVA IO流之转换流OutputStreamWriter和InputStreamReader】的相关文章

java IO 四(转换流的使用)

扯点别的: 随着年龄的慢慢增长,有些道理才明白,有些爱才感慨.家人或许希望你能立足大城市,开创一番事业.但是在内心里家人永远希望你多花点时间陪陪他们,一起吃吃饭,说说话,只要你平平安安,生活快乐,家人就感到幸福.所以多花点时间陪陪父母.陪陪爱人.陪陪孩子. 又搁置了不短的时间,继续写java io的知识,现在感觉自己的记忆力真的不行了,总是记不住东西,哎,关键还是理解不够深入,靠死记硬背是不行的看样.开搞.参考自毕向东老师的视频 第一: InputStreamReader 看看JDK里面的解释,

Java——IO类,转换流简化写法

body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-co

Java - io输入输出流 --转换流

转换流  转换输出流 OutputStreamWriter: 说明: /* * OutputStreamWriter 这个类的作用 * 就是指定输出流的编码格式 * 这个类的构造方法 需要传递 一个输出流的对象 * FileOutputStream fos = new FileOutputStream("e:gu.txt"); * OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8"); * * *

Java IO之处理流(缓冲流、转换流)

一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性). 三.缓冲流 1.字节缓冲流 BufferedInputStream BufferedOutputStream package IOBuffer; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im

IO流之转换流

一  转换流 1 OutputStreamWriter类 是字符流通向字节流的桥梁: 可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去. public static void main(String[] args) throws IOException { //指定目的地 FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",tr

JavaLearning:JAVA IO 之内存操作流

package org.fun.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class ByteArrayDemo { public static void main(String[] args) { String str = "helloworld";// 定义字符串,全部由小写字母组成 ByteArrayOutputStream bos = null;//

I/O流之--转换流:InputStreamReader 和InputStreamWriter

I/O流之--转换流:InputStreamReader 和InputStreamWriter 分类: java2014-07-01 15:30 815人阅读 评论(0) 收藏 举报 目录(?)[+] 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是字节流通向字符流的桥梁.如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK. 构造方法: InputStreamReader isr = new InputStreamReade

10缓冲流、转换流、序列化流、Files

十.流 10.1 缓冲流 10.1.1 概述 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 10.1.2 字节缓冲流 构造方法: 构造方法 - public Buffe

Java-IO流之转换流的使用和编码与解码原理

一.理论: 1.字符流和字节流区别是什么? 字符流=字节流+编码集,在实际读取的时候其实字符流还是按照字节来读取,但是会更具编码集进行查找编码集字典解析相应的字节,使得一次读取出一个字符: 2.什么是转换流? 转换流就是原本是字节流,但是读取到的数据是字符,所以我们希望使用字符流来进行操作,那么就可以使用转换流进行转换: 转换流=字节流+编码集. 转换流的特点是可以指定编码集. 3.转换流的作用: (1).从控制台读取数据输入(键盘输入),将它们写入到文件(我们写的是字符吧): (2).当对文件