莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述学习Java必备的基础知识打卡12.22,要想学好必须扎实基本功(?建议收藏)#yyds干货盘点#相关的知识,希望能为你提供帮助。
Day28-java之转换流@[toc]
关于作者? 作者介绍
现在对于IO操作就存在了字节流和字符流两种操作,那么对于这两种操作流之间也是可以进行转换的,而转换的操作类有两个:
将字节输出流变为字符输出流(OutputStream->
Writer)——OutputStreamWriter;
将字节输入流变为字符输入流(InputStream->
Reader)——InputStreaReader。
OutputStreamWriter | InputStreamReader |
---|---|
public class OutputStreamWriter< br> extends Writer | public class InputStreamReader< br> extends Reader |
public OutputStreamWriter(OutputStream out) | public InputStreamReader(InputStream in) |
文章图片
通过以上的继承结构和构造方法可以清楚发现,既然OutputStreamWriter是Writer的子类,那么必然OutputStreamWriter可以通过Writer类执行对象的向上转型进行接收,而同时这个OutputStreamWriter类的构造方法可以接收OutputStream,这样就可以完成转型。
package com.day14.demo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class OutWriterDemo
public static void main(String[] args) throws Exception
//1.定义文件路径
File file = new File("f:" + File.separator + "test" + File.separator + "hello.txt");
if(!file.getParentFile().exists())//父路径不存在
file.getParentFile().mkdirs();
//创建父目录//2.要输出的数据
String str = "Hello,world!!!!";
//3.实例化对象
OutputStream stream = new FileOutputStream(file,true);
//4.将内容写进stream
Writer out = new OutputStreamWriter(stream);
out.write(str);
//5.关闭流
out.close();
对于文件操作可以使用FileInputStream,FileOutputStream,FileReader,FileWriter四个类,那么下面分别观察这四个类的继承结构。
观察FileInputStream,FileOutoutStream类的继承结构
FileInputStream | FileOutoutStream |
---|---|
java.lang.Object< br/> java.io.InputStream< br/> java.io.FilterInputStream | java.lang.Object< br/> java.io.OutputStream< br/> java.io.FileOutputStream |
FileReader | FileWrite |
---|---|
java.lang.Objectjava.io.Readerjava.io.InputStreamReaderjava.io.FileReader | java.lang.Objectjava.io.Writerjava.io.OutputStreamWriterjava.io.FileWriter |
文章图片
【学习Java必备的基础知识打卡12.22,要想学好必须扎实基本功(?建议收藏)#yyds干货盘点#】通过以上的继承关系也可以发现,实际上所有的字符数据都是需要进行转换的,依靠转换流完成,以后真正保存或者是传输的数据是不可能有字符的,全部都是字节,而字节只是在电脑之中处理后的结果。
推荐阅读
- 信息安全深透测试与工房网络中主动信息收集2
- 圣诞节到了,写一个炫酷的圣诞树和平安果,送给你最爱的人吧
- #yyds干货盘点#Java并发机制的底层实现原理
- JVS系列开源框架——可视化在线表单配置含框架源码
- #私藏项目实操分享#Python爬虫实战,pymysql模块,Python实现抓取音乐评论
- #星光计划2.0#木棉花ArkUI转场动画的使用——学习笔记
- #yyds干货盘点# C语言数组与指针常考笔试题(原题+解析+原码)
- JavaScript请求后台数据的几种常用方式#yyds干货盘点#
- 数仓建模—指标体系