《java--包、异常与输入输出5》由会员分享,可在线阅读,更多相关《java--包、异常与输入输出5(9页珍藏版)》请在金锄头文库上搜索。
1、包、异常与输入输出5本单元教学内容n过滤流的概念n字节过滤流n字符过滤流过滤流n上次课,我们接触到许多节点流类,他们可以以 字节或字符为传输单位来传输数据qFileOutputStream向文件中写入字节qFileWriter向文件中写入字符n那么,如果我们要向文件中写入double类型的数 据,改怎么做呢?n先将double类型的数据转换为字节数组,再将字 节数组写入到文件中n那么有没有简便的方法呢?如何向文件中写入基本数据类型(例519)nimport java.io.*;nclass DataOutnpublic static void main(String args) throws
2、IOExceptionnFileOutputStream fout=new FileOutputStream(“data.txt“);nDataOutputStream out=new DataOutputStream(fout);nString items=“面包“,“笔“,“被子“,“牙膏“,“毛巾“;nint units=5,2,1,2,3;nfloat prices=1.5f,2.8f,125f,7.2f,5.6f;nfor(int i=0;iitems.length;i+)nout.writeUTF(itemsi);nout.writeChar(t);nout.writeFloat(
3、pricesi);nout.writeChar(t);nout.writeInt(unitsi);nout.writeChar(t);nnout.close();nn字节文件输 出流只提供 了字节写入 方法DataOutputStrea m提供了输出基本 数据类型的方法它以字节文件输 出流为基础,称 为过滤流打开data.txt 文件,看看内 容过滤流的概念和特点nDataOutputStream实际上是一个中间类,在它内 部,将其他数据类型转换成字节数组,然后调用 底层的节点流类将这个字节数组写入目标设备。 我们将这种中间类称为过滤流类程序方法C方法B方法A方法1目标设备包装流类节点流类试一
4、试n调试运行例520n使用DataInputStream从文件读入基本类型数据过滤流的特点n以节点流为基础q当创建一个过滤流对象时,必须指定它要调用的那 个的底层对象。如:DataOutputStream的构造器 方法: public DataOutputStream(OutputStream out)n提供了一些附加功能q如BufferedOutputStream也是基于OutputStream 类的过滤流类,它提供了输出缓冲功能n既然BufferedOutputStream是OutputStream的子 类,那么,DataOutputStream的构造器方法中是 否可以传入BufferedOutputStream类型的对象作 为参数呢?构造带缓冲的文件数据输入/输出流字符过滤流nDataOutputStream以OutputStream字节节点流 为基础,因此属于字节过滤流n那么以字符节点流Reader、Writer为基础的过滤 流,则称为字符过滤流n我们前面用到的BufferedReader就是 它提供了输出缓冲功能,还增加了对整行字符的处 理方法readLine()n调试运行(例521)n使用BufferedReader和BufferedWriter实现文本 文件的按行拷贝字符过滤流