缓冲流和转换流(转)

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     }    
原文地址:https://www.cnblogs.com/xingmeng/p/3270639.html