java IO操作:转换流--OutputStreamWriter类与InputStreamReader类
来源:互联网 发布:mac管理员的名称和密码 编辑:程序博客网 时间:2024/04/27 21:20
整个IO包实际上分为字节流和字符流,但是除了这两个流之外,还存在一组字节流-字符流的转换类。
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象。
如果以文件操作为例,则内存中的字符数据需要通过OutputStreamWriter变为字节流才能保存在文件中,读取时需要将读入的字节流通过InputStreamReader变为字符流。过程如下:
写入数据-->内存中的字符数据-->字符流-->OutputStreamWriter-->字节流-->网络传输(或文件保存)
读取数据<--内存中的字符数据<--字符流<--InputStreamReader<--字节流<--网络传输(或文件保存)
可以清楚地发现,不管如何操作,最终全部是以字节的形式保存在文件中或者进行网络传输。
从JDK文档中可以知道FileOutputStream是OutputStream 的直接子类,FileInputStream也是InputStream的直接子类,但是在字符流文件中的两个操作类却有一些特殊,FileWriter并不直接是Writer的子类,而是OutputStreamWriter的子类,而FileReader也不直接是Reader的子类,是InputStreamReader的子类,那么从这两个类的继承关系就可以清楚地发现,不管是使用字节流还是字符流实际上最终都是以字节的形式操作输入/输出流的。
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象。
如果以文件操作为例,则内存中的字符数据需要通过OutputStreamWriter变为字节流才能保存在文件中,读取时需要将读入的字节流通过InputStreamReader变为字符流。过程如下:
写入数据-->内存中的字符数据-->字符流-->OutputStreamWriter-->字节流-->网络传输(或文件保存)
读取数据<--内存中的字符数据<--字符流<--InputStreamReader<--字节流<--网络传输(或文件保存)
可以清楚地发现,不管如何操作,最终全部是以字节的形式保存在文件中或者进行网络传输。
import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.Reader;public class TestInputStreamReader {public static void main(String[] args) throws Exception { // 所有的异常抛出File f = new File("c:" + File.separator + "test.txt");Reader reader = null;reader = new InputStreamReader(new FileInputStream(f));// 将字节流变为字符流char c[] = new char[1024];int len = reader.read(c);reader.close();System.out.println(new String(c, 0, len));}}
import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;public class TestOutputStreamWriter {public static void main(String[] args) throws Exception { // 所有的异常抛出File f = new File("c:" + File.separator + "test.txt");Writer out = null;out = new OutputStreamWriter(new FileOutputStream(f));// 字节流变为字符流out.write("hello world"); // 使用字符流输出out.close();}}注意:FileWriter和FileReader的说明。
从JDK文档中可以知道FileOutputStream是OutputStream 的直接子类,FileInputStream也是InputStream的直接子类,但是在字符流文件中的两个操作类却有一些特殊,FileWriter并不直接是Writer的子类,而是OutputStreamWriter的子类,而FileReader也不直接是Reader的子类,是InputStreamReader的子类,那么从这两个类的继承关系就可以清楚地发现,不管是使用字节流还是字符流实际上最终都是以字节的形式操作输入/输出流的。
- java IO操作:转换流--OutputStreamWriter类与InputStreamReader类
- 转换流--OutputStreamWriter类与InputStreamReader类
- 转换流--OutputStreamWriter类与InputStreamReader类
- 转换流--OutputStreamWriter类与InputStreamReader
- java中的转换流,OutputStreamWriter类与InputStreamReader
- Java - IO - 转换流 - InputStreamReader - OutputStreamWriter
- IO之转换流-OutputStreamWriter类和InputStreamReader类
- JAVA 的IO操作(六)OutputStreamWriter类与InputStreamReader类
- 转换流--OutputStreamWriter类与InputStreamReader类详解
- InputStreamReader与OutputStreamWriter转换流
- Java IO操作——字节-字符转换流(OutputStreamWriter、InputStreamReader)
- Java IO流->处理流->转换流:InputStreamReader&OutputStreamWriter
- 【JAVA IO流之转换流OutputStreamWriter和InputStreamReader】
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
- java学习笔记:关于IO转换流InputStreamReader和OutputStreamWriter
- 转换流----outputStreamWriter类和inputstreamReader
- Java IO - InputStreamReader&OutputStreamWriter
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
- 执行环境及作用域
- Mysql源代码阅读笔记(六)命令汇总
- Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
- Mldonkey
- Python:一个多功能的抓图工具开发(附源码)
- java IO操作:转换流--OutputStreamWriter类与InputStreamReader类
- 闭包与柯里化
- Android调试工具adb的使用
- CLR via C# 学习笔记(2012/3/10)
- Struts2常用标签总结
- 正则表达式工作原理
- io流图解
- 让自增列复位
- win7 系统服务