转换流

字节流和字符流的转换可以通过InputStreamReader、OutputStreamWriter两个类转换,下面是这两个类的继承结构和构造方法

名称 定义构造 构造方法
InputStreamReader public class InputStreamReader extends Reader public InputStreamReader(InputStream in)
OutputStreamWriter public class OutputStreamWriter extends Writer public OutputStreamWriter(OutputStream out)

通过上述关系我们可以发现:

  • InputStreamReader类的构造方法中接收InputStream类的对象,而InputStreamReader是Reader的子类,该类对象可以直接向上转型为Reader类对象,这样就表示可以将接收到的字节输入流转换为字符输入流;
  • OutputStreamWriter类的构造方法接收OutputStream类的对象,而OutputStreamWriter是Writer的子类,该类直接向上转型为Writer类对象,这样就表示可以将接收到的字节输出流转换为字符输出流(Writer类中提供了直接输出字符串的操作)。

例:实现输出流转换

package Project.Study.WriterClass;import java.io.*;public class Test3 {public static void main(String[]args)throws Exception{File file=new File("d:"+File.separator+"Test"+File.separator+"test3.txt");//定义要输出文件的路径if (!file.getParentFile().exists()){//判断父路径是否存在file.getParentFile().mkdirs();//创建父路径}OutputStream outputStream=new FileOutputStream(file);//字节流Writer writer=new OutputStreamWriter(outputStream);//将OutputStream类对象传递给OutputStreamWriter类的构造方法,而后向上转型为Writerwriter.write("Hello World!!!");//Writer类的方法writer.flush();writer.close();}
}

结果:

Java学习总结:43(转换流)相关推荐

  1. java学习笔记-初学IO流

    目 录 什么是IO IO流的分类 Java中的IO流 java中需要掌握的流:16个 字节流 java.io.FileInputStream(字节输入流) java.io.FileOutputStre ...

  2. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  3. Java学习——Day13:IO流

    6.1 File类 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身. 如果需要访问文件内容本身, ...

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

    转换流  转换输出流 OutputStreamWriter: 说明: /* * OutputStreamWriter 这个类的作用 * 就是指定输出流的编码格式 * 这个类的构造方法 需要传递 一个输 ...

  5. Java学习之I/O流

    最近学习了I/O,按照老规矩写上一篇. I/O流 什么是I/O流? 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为 ...

  6. JAVA学习05-类型转换

    1.类型转换 由于JAVA是强类型语言,所以要进行有些运算的时候,需要用到类型转换 低--------------------------------------------------------- ...

  7. Java学习路线-43:JDBC数据库开发入门

    5-JDBC数据库开发入门 课时1-2 1.什么是JDBC JDBC 数据库访问规范 应用程序 <-> JDBC <-> MySQL驱动 <-> MySQL< ...

  8. java学习(43):值参数传递

    //值参数传递 class student02{ private int age; private int strong; public void addition(int age,int stron ...

  9. java 流 改变编码_Java-IO流之转换流的使用和编码与解码原理

    一.理论: 1.字符流和字节流区别是什么? 字符流=字节流+编码集,在实际读取的时候其实字符流还是按照字节来读取,但是会更具编码集进行查找编码集字典解析相应的字节,使得一次读取出一个字符: 2.什么是 ...

最新文章

  1. unity3d 数学基础与数学辅助类
  2. 二元函数泰勒公式例题_高等数学入门——二元函数可微性的判断方法总结
  3. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 14丨报告的记录 I【难度简单】
  4. elasticsearch-7.15.2 同时支持中文ik分词器和pinyin分词器
  5. 逆序对(洛谷P1908题题解,Java语言描述)
  6. Android中插件开发篇之----类加载器
  7. 精度、误差与分辨率的研究
  8. rope 实用把一段区间的数字整体搬到序列中的一段的时候用
  9. [软件架构]基于PluginRT的插件编程
  10. koa2 从入门到进阶之路 (七)
  11. 基于ArcGIS和fragstats软件计算景观破碎度(二)
  12. 电子信息工程考研专业方向解读
  13. python毕业设计题目推荐飞机票销售订票系统
  14. Blender建模(三)
  15. aio-pika的使用
  16. Layui 数据表格合并单元格
  17. 网络分层流转---从浏览器请求到服务端响应究竟经历了什么?
  18. sublimetext的文件编码理解reopen/reload with encoding,set encoding,save with encoding, set file encoding to
  19. 连接网络要求输入计算机密码是什么,上网时总是提示需要输入网络密码什么原因...
  20. [量子客]4月全球量子计算发展内参

热门文章

  1. 编写Makefile中遇到的各种奇葩问题汇总
  2. 【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course
  3. 探测参考信号(Sounding Reference Signal)
  4. Cmake 实例学习 一
  5. RTTI(三)相关函数1【转自大富翁】
  6. 得到windows聚焦图片(windows 10)
  7. Appium学习笔记2_Android获取元素篇
  8. BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
  9. adodb.RecordSet的属性和方法
  10. Jquery实现的Tabs页签