IO流学习之字节流

Posted bernard94

tags:

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

字节流缓冲区:

1、BufferedInputStream

技术图片

构造函数(以字节流为基础进行操作):

技术图片

常用方法:

技术图片

代码实例:

 1 package InputOutput;
 2 
 3 import java.io.BufferedInputStream;
 4 import java.io.FileInputStream;
 5 import java.io.IOException;
 6 
 7 public class BufferedInputStreamDemo 
 8     public static void main(String[] args) throws IOException 
 9         // 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
10         String path = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
11         // 创建字节流输入对象
12         FileInputStream in = new FileInputStream(path);
13         // 创建缓冲区
14         BufferedInputStream bin = new BufferedInputStream(in);
15         // 写入数据,读到最后会返回-1
16         // 方法一
17 //        int flag1 = -1;
18 //        while ((flag1 = bin.read()) != -1) 
19 //            System.out.println(flag1);
20 //        
21         // 方法二(推荐)
22         byte[] b = new byte[1024];
23         int flag2 = -1;
24         while ((flag2 = bin.read(b, 0, b.length)) != -1) 
25             System.out.println(flag2);
26         
27 
28     
29 

 

2、BufferedOutinputStream

技术图片

构造方法:

技术图片

 

主要方法:

技术图片

 

代码实例:

 1 package InputOutput;
 2 
 3 import java.io.BufferedOutputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.OutputStream;
 8 
 9 public class BufferedOutStreamDemo 
10     public static void main(String[] args) throws IOException 
11         // 指定文件路径文件路径要准确,文件不存在会自动创建,但是路径不能缺失
12         String path = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Writer/writer.txt";
13         // 创建字节流输出对象,true代表在文本末尾添加数据,而不是每次写入都删除后重新写入数据
14         FileOutputStream out = new FileOutputStream(path, true);
15         // 创建输出缓冲区
16         BufferedOutputStream Bout = new BufferedOutputStream(out);
17         // 调用方法写入数据
18         byte[] b = "你好,helloWorld".getBytes();
19         Bout.write(b, 0, b.length);
20         Bout.flush();
21         Bout.close();
22     
23 

3、缓冲区实现复制文件

代码实例:

 1 package InputOutput;
 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 BufferInOutputStreamDemo 
10     public static void main(String[] args) throws IOException 
11         // 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
12         String path1 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
13         // 创建字节流输入对象
14         FileInputStream in = new FileInputStream(path1);
15         // 创建缓冲区
16         BufferedInputStream Bin = new BufferedInputStream(in);
17         // 指定文件路径文件路径要准确,文件不存在会自动创建,但是路径不能缺失
18         String path2 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Writer/Ace.jpg";
19         // 创建字节流输出对象,true代表在文本末尾添加数据,而不是每次写入都删除后重新写入数据
20         FileOutputStream out = new FileOutputStream(path2, true);
21         // 创建输出缓冲区
22         BufferedOutputStream Bout = new BufferedOutputStream(out);
23         // 调用方法读取数据
24         int flag = -1;
25         byte[] b = new byte[1024];
26         while ((flag = Bin.read(b)) != -1) 
27             // 调用方法写数据
28             Bout.write(b, 0, flag);
29             Bout.flush();
30         
31         //关闭资源,先关写再关读
32         Bout.close();
33         Bin.close();
34     
35 

 

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

JAVA学习之字节流字符流

java学习之字符流与字节流的转换

Java学习之IO流(转换流)

21 Java学习之字节流(InputStream和OutPutStream)

IO流24 - 字节流 - 字节流的四种复制文件方式对比

IO流---字节流