java 缓冲流和转换流

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.  
package com.io;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestBufferedString {

    public static void main(String[] args) throws Exception {
        // 指定要读取文件的缓冲输入字节流
        BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\\photo\\IMG0460A.jpg"));
        File file = new File("F:\\IMG0460A.jpg");
        if (file != null) {
            file.createNewFile();
        }
        // 指定要写入文件的缓冲输出字节流
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
        byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组
        int n;// 每次读取到的字节数组的长度
        while ((n = in.read(bb)) != -1) {
            out.write(bb, 0, n);// 写入到输出流
        }
        out.close();// 关闭流
        in.close();
    }

}

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. }   

你可能感兴趣的:(java,io,io,IO,java,Java,JAVA)