黑马程序员JAVA编程阶梯:基础篇之第二十二章

2019-01-27 10:46

【济南中心】JAVA编程阶梯:基础篇之第二十二章

IO流之序列流: 1.什么是序列流

* 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式

* 整合两个: SequenceInputStream(InputStream, InputStream) [Java] 纯文本查看 复制代码 ?

01 FileInputStream fis1 = new FileInputStream(\//创建输入流对象,关联a.txt 02 FileInputStream fis2 = new FileInputStream(\//创建输入流对象,关联b.txt

03 SequenceInputStream sis = new SequenceInputStream(fis1, fis2); //将两个流整合成一个流 04 FileOutputStream fos = new FileOutputStream(\//创建输出流对象,关联c.txt 05 06 int b;

07 while((b = sis.read()) != -1) { //用整合后的读 08 fos.write(b); //写到指定文件上 09 } 10

11 sis.close(); 12 fos.close();

黑马程序员济南中心 编著

IO流之序列流整合多个:

整合多个: SequenceInputStream(Enumeration) [Java] 纯文本查看 复制代码 ?

01 FileInputStream fis1 = new FileInputStream(\//创建输入流对象,关联a.txt 02 FileInputStream fis2 = new FileInputStream(\//创建输入流对象,关联b.txt 03 FileInputStream fis3 = new FileInputStream(\//创建输入流对象,关联c.txt 04 Vector v = new Vector<>(); //创建vector集合对象 05 v.add(fis1); //将流对象添加 06 v.add(fis2); 07 v.add(fis3);

08 Enumeration en = v.elements(); //获取枚举引用

09 SequenceInputStream sis = new SequenceInputStream(en); //传递给SequenceInputStream10 FileOutputStream fos = new FileOutputStream(\11 int b;

12 while((b = sis.read()) != -1) { 13 fos.write(b); 14 } 15

16 sis.close(); 17 fos.close(); IO流之内存输出流:

黑马程序员济南中心 编著

1.什么是内存输出流

* 该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据 2.使用方式

* 创建对象: new ByteArrayOutputStream() * 写出数据: write(int), write(byte[]) * 获取数据: toByteArray() [Java] 纯文本查看 复制代码 ?

01 FileInputStream fis = new FileInputStream(\

02 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 03 int b;

04 while((b = fis.read()) != -1) { 05 baos.write(b); 06 } 07

08 //byte[] newArr = baos.toByteArray(); //将内存缓冲区中所有的字节存储在newArr中09 //System.out.println(new String(newArr)); 10 System.out.println(baos); 11 fis.close();

例子:定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)

黑马程序员济南中心 编著

[Java] 纯文本查看 复制代码 ?

1 FileInputStream fis = new FileInputStream(\//创建字节输入流,关联a.txt 2 ByteArrayOutputStream baos = new ByteArrayOutputStream(); //创建内存输出流 3 byte[] arr = new byte[5]; //创建字节数组,大小为5 4 int len;

5 while((len = fis.read(arr)) != -1) { //将文件上的数据读到字节数组中 6 baos.write(arr, 0, len); //将字节数组的数据写到内存缓冲区中 7 }

8 System.out.println(baos); //将内存缓冲区的内容转换为字符串打印 9 fis.close();

IO流之随机访问流概述和读写数据: A:随机访问流概述

* RandomAccessFile概述

* RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream的功能。

* 支持对随机访问文件的读取和写入。

B:read(),write(),seek()

IO流之对象操作流ObjecOutputStream: 1.什么是对象操作流

* 该流可以将一个对象写出, 或者读取一个对象到程序中. 也就是执行了序列化和反序

黑马程序员济南中心 编著

列化的操作. 2.使用方式

* 写出: new ObjectOutputStream(OutputStream), writeObject() [Java] 纯文本查看 复制代码 ?

01 public class Demo3_ObjectOutputStream { 02

03 /**

04 * @param args

05 * @throws IOException 06 * 将对象写出,序列化 07 */

08 public static void main(String[] args) throws IOException { 09 Person p1 = new Person(\张三\10 Person p2 = new Person(\李四\

11 // FileOutputStream fos = new FileOutputStream(\12 // fos.write(p1);

13 // FileWriter fw = new FileWriter(\14 // fw.write(p1);

15 //无论是字节输出流,还是字符输出流都不能直接写出对象

16 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(\17 对象输出流

黑马程序员济南中心 编著


黑马程序员JAVA编程阶梯:基础篇之第二十二章.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中物理实验操作评分标准及实验记录单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: