Java中的IO字节流

Posted ztt_tttt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的IO字节流相关的知识,希望对你有一定的参考价值。

 关闭流的顺序:

  * 当A依赖B的时候先关闭A,再关闭B
  * 带缓冲的流最后关闭的时候会执行一次flush

ByteArrayInputStream :是字节数组输入流,作用是把字节串(或叫字节数组)变成输入流的形式

 1 package object.io;
 2 
 3 import java.io.ByteArrayInputStream;
 4 import java.io.ByteArrayOutputStream;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 
 8 public class ByteArrayStream {
 9 
10     public static void main(String[] args) throws IOException {
11         // TODO Auto-generated method stub
12         byte[] b=new byte[]{\'a\',\'b\',\'c\'};
13         //将字节输入转成流
14         ByteArrayInputStream input=new ByteArrayInputStream(b);
15         ByteArrayOutputStream output=new ByteArrayOutputStream();
16         FileOutputStream fileOut=new FileOutputStream("D:\\\\Program Files (x86)\\\\io\\\\ByteArray.txt");
17         int length;
18         while((length=input.read())!=-1){
19             fileOut.write(length);
20         }
21         //将缓冲区的内容刷新到输出流
22         output.writeTo(fileOut);
23         input.close();
24         output.close();
25         fileOut.close();
26     }
27     
28 
29 }

 

SequenceInputStream :将多个文件合并成一个文件
 1 package object.io;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.SequenceInputStream;
 8 import java.util.ArrayList;
 9 import java.util.Collections;
10 import java.util.Enumeration;
11 import java.util.List;
12 
13 
14 public class SequenceStream {
15     
16     //将多个文件合并到一个文件
17     public static void main(String[] args) throws IOException {
18         // TODO Auto-generated method stub
19     
20         FileInputStream f1=new FileInputStream("D:\\\\Program Files (x86)\\\\io\\\\sequence1.txt");
21         FileInputStream f2=new FileInputStream("D:\\\\Program Files (x86)\\\\io\\\\sequence2.txt");
22         FileInputStream f3=new FileInputStream("D:\\\\Program Files (x86)\\\\io\\\\sequence3.txt");
23         List<FileInputStream> list=new ArrayList<FileInputStream>();
24         list.add(f1);
25         list.add(f2);
26         list.add(f3);
27         
28         //将集合转换成枚举类型
29         Enumeration<FileInputStream> e=Collections.enumeration(list);
30         
31         //接收的是枚举类型,如上图所示
32         SequenceInputStream s=new SequenceInputStream(e);
33         
34         FileOutputStream outputStream=new FileOutputStream("D:\\\\Program Files (x86)\\\\io\\\\sequence4.txt");
35         int length;
36         while((length=s.read())!=-1){
37             outputStream.write(length);
38         }
39         f1.close();
40         f2.close();
41         f3.close();
42         s.close();
43         outputStream.close();
44     }
45 
46 }

 

 

BufferedInputStream :缓冲字节输入流,是一个高级流(处理流),与其他低级流配合使用,将其他流包装起来。效率高
BufferedInputStream :同BufferedInputStream 
 1 package object.io;
 2 
 3 import java.io.BufferedInputStream;
 4 import java.io.BufferedOutputStream;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 
 9 public class BufferStream {
10     public static void main(String[] args) throws IOException {
11         FileInputStream input=new FileInputStream("D:\\\\Program Files (x86)\\\\io\\\\bufferStream1.txt");
12         BufferedInputStream binput=new BufferedInputStream(input);
13         FileOutputStream output=new FileOutputStream("D:\\\\Program Files (x86)\\\\io\\\\bufferStream2.txt");
14         BufferedOutputStream boutput=new BufferedOutputStream(output);
15         int length;
16         while((length=binput.read())!=-1){
17             boutput.write(length);
18         }
19         //将缓冲区的内容刷新到文件
20         boutput.flush();
21         input.close();
22         binput.close();
23         output.close();
24         boutput.close();
25     }
26 }

 

以上是关于Java中的IO字节流的主要内容,如果未能解决你的问题,请参考以下文章

Java中的IO字节流

Java之IO流---字节流

Java IO流-字节流

JAVA——IO流-字符流和字节流

Java之IO流---字节流

java IO流——字节流