缓冲流和转换流(转)
1. 缓冲流
java IO通过缓冲流来提高读写效率,普通的字节、字符流都是一个字节一个字符这样读取的,而缓冲流则是将数据先缓冲起来,然后一起写入或者读取出来。经常使用的是readLine()方法,表示一次读取一行数据。
Java代码:
1 package com.io; 2 3 4 import java.io.BufferedInputStream; 5 import java.io.BufferedOutputStream; 6 import java.io.File; 7 import java.io.FileInputStream; 8 import java.io.FileOutputStream; 9 10 public class TestBufferedString { 11 12 public static void main(String[] args) throws Exception { 13 // 指定要读取文件的缓冲输入字节流 14 BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\\photo\\IMG0460A.jpg")); 15 File file = new File("F:\\IMG0460A.jpg"); 16 if (file != null) { 17 file.createNewFile(); 18 } 19 // 指定要写入文件的缓冲输出字节流 20 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); 21 byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组 22 int n;// 每次读取到的字节数组的长度 23 while ((n = in.read(bb)) != -1) { 24 out.write(bb, 0, n);// 写入到输出流 25 } 26 out.close();// 关闭流 27 in.close(); 28 } 29 30 }
2. 转换流
java提供将字节流转化为字符流读写方式的OutputStreamWriter和InputStreamReader
Java代码
1 package com.io; 2 import java.io.*; 3 public class OutputStreamWriterDemo01 4 { 5 public static void main(String args[]) throws Exception{ //所有异常抛出 6 //写入数据 7 File file=new File("d:"+File.separator+"test.txt"); 8 Writer writer=null; //字符输出流 9 writer=new OutputStreamWriter(new FileOutputStream(file)); //字节流变为字符流 10 String str="hello world!!!!"; 11 writer.write(str); //使用字符流输出 12 writer.close(); 13 14 //读取文件 15 16 File f = new File("d:" + File.separator + "test.txt") ; 17 Reader reader = null ; 18 reader = new InputStreamReader(new FileInputStream(f)) ; // 将字节流变为字符流 19 char c[] = new char[1024] ; 20 int len = reader.read(c) ; // 读取 21 reader.close() ; // 关闭 22 System.out.println(new String(c,0,len)) ; 23 } 24 }