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

内容发布更新时间 : 2024/5/4 16:37:18星期一 下面是文章的全部内容请认真阅读。

【济南中心】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)

黑马程序员济南中心 编著