IO流学习之字节流(二)

字节流缓冲区:

1、BufferedInputStream

IO流学习之字节流(二)

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

IO流学习之字节流(二)

常用方法:

IO流学习之字节流(二)

代码实例:

 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

IO流学习之字节流(二)

构造方法:

IO流学习之字节流(二)

 

主要方法:

IO流学习之字节流(二)

 

代码实例:

 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 }

 

上一篇:PDF文件转换为Base64编码


下一篇:Qt的时间控件类QDateTimeEdit,QTimeEdit,QDateEdit,QCalendarWidget