Java IO编程——转换流
所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以进行输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转化操作,为此在java.io包里面提供有两个类:InputStreamReader、OutputStreamWriter。
类 |
InputStreamReader: |
OutputStreamWriter: |
定义 |
public class OutputStreamWriter extends Writer |
public class InputStreamReader extends Reader |
构造方法 |
public OutputStreamWriter(OutputStream out) |
public InputStreamReader(InputStream in) |
通过类的继承结构与构造方法可以发现,所谓的转换处理就是将接收到的字节流对象通过向上转型变为字符流对象。
范例:观察转换
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class JavaAPIDemo {
public static void main(String[] args) throws Exception {
File file = new File("D:" + File.separator + "hello" + File.separator + "mldn.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs(); // 父目录必须存在
}
OutputStream output = new FileOutputStream(file) ;
Writer out = new OutputStreamWriter(output) ; // 字节流变为字符流
out.write("www.mldn.cn"); // 直接输出字符串,字符流适合于处理中文
out.close();
}
}
JavaAPIDemo
讲解转换流的主要目的基本上不是为了让开发者去记住它,而是知道有这样一种功能,但同时更多的是需要进行结构的分析处理。通过之前的字节流与字符流的一系列的分析之后你会发现OutputStream类有FileOutputStream直接子类、InputStream类有FileInputStream直接子类,但是来观察一下FileWriter、FileReader类的继承关系。
FileWriter |
FileReader |
public class FileWriter extends OutputStreamWriter |
public class FileReader extends InputStreamReader |
实际上所谓的缓存都是指的是程序中间的一道处理缓冲区。
最新文章
- ";高大上"; 名词整理
- [Educational Codeforces Round 16]B. Optimal Point on a Line
- 【python cookbook】【数据结构与算法】9.在两个字典中寻找相同点
- 把工程部署在tomcat的root路径下
- POJ 3440 Coin Toss(求概率)
- css笔记11:选择器练习
- react 编写组件 五
- vs2013+sql server2012
- Content-Disposition的使用和注意事项(转载)
- mvc拦截器
- 前端数据存储方案集合(cookie localStorage等)以及详解 (一)
- 三:C#对象转换Json时的一些高级(特殊)设置;
- 第十三节,使用带有全局平均池化层的CNN对CIFAR10数据集分类
- 通过GCEASY 和 jfr 发现运行时问题
- AOP在大规模软件开发项目中的应用(图)
- JS DOM操作思维导图
- scala 学习笔记八 简洁性
- [ML]熵、KL散度、信息增益、互信息-学习笔记
- Python学习之——Oracle数据库连接
- EL(表达式)语言的几种运算符