Java IO学习笔记(四):字节
来源:互联网 发布:微盘交易平台源码出售 编辑:程序博客网 时间:2024/06/05 17:15
OutputStreamWriter和InputStreamReader
在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变成字节流的输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变成字符流的输入对象。
一般在操作输入输出内容就需要使用字节或字符流,但是有些时候需要将字符流变成字节流的形式,或者将字节流变为字符流的形式,所以,就需要另外一组转换流的操作类。
看一下OutputStreamWriter的构造方法:
public OutputStreamWriter(OutputStream out)
例如,将字节的文件输出流,以字符的形式输出
1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.OutputStreamWriter; 5 import java.io.Writer; 6 7 public class Test20 { 8 public static void main(String[] args) throws IOException { 9 File f = new File("d:" + File.separator+"test.txt");10 Writer out=new OutputStreamWriter(new FileOutputStream(f));11 out.write("Hello World!!!");12 out.close();13 }14 }
读得时候也可以用字符流形式读取字节流的对象
1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.IOException; 4 import java.io.InputStreamReader; 5 import java.io.Reader; 6 7 public class Test21 { 8 public static void main(String[] args) throws IOException { 9 File f = new File("d:" + File.separator+"test.txt");10 Reader input=new InputStreamReader(new FileInputStream(f));11 char[] c=new char[1024];12 int len=input.read(c);13 input.close();14 System.out.println(new String(c,0,len));15 }16 }
以上操作只是以文件操作为例,OutputStreamWriter中接受的类型是OutputStream,只要是字节输出流都可以以使用字符的形式操作,InputStreamReader一样。
FileWriter和FileReader的说明
从JDK文档中可以知道FileOutputStream是OutputStream的直接子类。FileInputStream也是InputStream的直接子类,但是在字符流文件的两个操作类却有一些特殊,FileWriter并不直接是Writer的子类,而是OutputStreamWriter的子类,而FileReader也不直接是Reader的子类,而是InputStreamReader的子类,那么从这两个类的继承关系就可以清楚的发现,不管是使用字节流还是字符流实际上最终都是以字节的形式操作输入输出流的。也就是说,传输或者从文件中读取数据的时候,文件里真正保存的数据永远是字节。
- Java IO学习笔记(四):字节
- Java IO学习笔记四
- Java IO学习笔记:字节流
- Java IO学习笔记:字节流
- Java IO学习笔记:字节流
- [学习笔记]Java IO之字节流
- [学习笔记]Java IO之字节流
- Java学习笔记之IO(四):BufferedInputStream缓冲输入字节流
- java基础学习笔记(四)JAVA IO
- 字节流--IO学习笔记(二)
- java Io流学习(四) 字节流字符流实例操作--合歌
- java学习笔记(四)——io操作
- 黑马程序员----java IO-字节流 学习笔记
- Java学习笔记之 IO包 字节流
- Java学习笔记之IO流中的文件字节流
- (42)Java学习笔记——IO流 / 字节流
- Java IO学习笔记之字节流和字符流
- Java学习笔记之IO(二):InputStream输入字节流
- grep正则表达式(一)
- CodeVS 1907 网络流最小割 解题报告
- Java IO学习笔记(五):内存操作流
- Lucene3.0 优化操作
- IBM的单点登录
- Java IO学习笔记(四):字节
- 大话数据结构(七)——二叉树创建与遍历(递归、非递归)的java实现
- 第1课
- (193)矢量操作
- 欢迎使用CSDN-markdown编辑器
- Java IO学习笔记(三):字节流与字符流
- Java IO学习笔记(二):RandomAccessFile类
- MySQL创建数据库和数据库表
- Java IO学习笔记(一):File类