`
红桃貳
  • 浏览: 39621 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 学习笔记- I/O - buffered Stream

阅读更多



 buffered stream 是对unbuffered stream的封装,从而减少读写的操作,提高程序的效率,由上图可以看出,buffered stream 可以分为 字节流和字符流两种,用来封装字节流的buffered stream 类为:BufferedInputstream,BufferedOutputStream 其构造方法为:BufferedInputstream(InputStream in),BufferedOutputStream (OutPutStream out). 这两个类对应的常用方法分别是read() 和 write(int c).

用来封装字符流的buffered stream类为: BufferedReader 和 BufferedWriter 其构造方法:BufferedReader(Reader read), BufferedWriter(Writer write) 常用的方法为readLine() 和writer(String s).

 

代码示例:

 

package io.bufferedstream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 
 * @author PENGGR 
 * 
 * Buffered Stream 
 * 1.buffered for byte stream: BufferedInputStream,BufferedOutputStream
 * 2.buffered for character stream: BufferedReader, BufferedWriter
 * 
 * Why buffered? performance improving.
 */
public class CopyBufferedStream {

    public static void main(String[] args) {
        BufferedInputStream inputStream = null;
        BufferedOutputStream outputStream = null;

        BufferedReader inputStream2 = null;
        BufferedWriter outputStream2 = null;

        try {
            inputStream = new BufferedInputStream(new FileInputStream("D:\\360云盘\\javase\\src\\io\\xanadu.txt"));

            outputStream = new BufferedOutputStream(new FileOutputStream(
                    "D:\\360云盘\\javase\\src\\io\\bufferedStreamOut.txt"));
            int c;
            while ((c = inputStream.read()) != -1) {
                // outputStream.write(l);
                outputStream.write(c);
            }

            inputStream2 = new BufferedReader(new FileReader("D:\\360云盘\\javase\\src\\io\\xanadu.txt"));
            outputStream2 = new BufferedWriter(new FileWriter("D:\\360云盘\\javase\\src\\io\\bufferedStreamOut2.txt"));
            String l;
            while ((l = inputStream2.readLine()) != null) {
                outputStream2.write(l);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStream != null) {
                    inputStream.close();
                }
                if (outputStream != null) {
                    outputStream.close();
                }

                if (outputStream2 != null) {
                    outputStream2.close();
                }
                if (inputStream2 != null) {
                    inputStream2.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 

 

 

 

  • 大小: 190.4 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics