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流学习之字节流的主要内容,如果未能解决你的问题,请参考以下文章