您的位置:首页 > 编程语言 > Java开发

java 使用带有缓冲的字符流读写数据

2017-05-28 22:37 369 查看
案例

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.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

public class RWByBufferCharStream {
 public static void main(String[] args) {

    /*

     * 数据的读 出

     */

    

    //File file = new File("1.txt");

    

    try {

     //传入一个文件字符流输入流

     FileInputStream fileInputStream  = new FileInputStream("1.txt");

        //将字符流转化为字节流

     FileOutputStream fileOutputStream = new FileOutputStream("i_newbuffer.txt");

     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8");

        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

        //BufferedWriter bufferedWriter =  new BufferedWriter(outputStreamWriter);

       PrintWriter printWriter = new PrintWriter( outputStreamWriter,true);//使用这个类会有换行符出现

      

        String input;

        while((input=bufferedReader.readLine())!=null)//读取文件的一行数据

        {

         //bufferedWriter.write(input);// BufferedWriter bufferedWriter自带有缓冲区 只有当缓冲区写满后才写入硬盘这样  可以提高硬盘使用量,硬盘的寿命 整体写出时间变短

         printWriter.println(input);//输出有换行符的字符串

        }

        //读取一段缓存流后需要 写入到文件中

       //为了 保证缓冲区所有文件都输出 需要强制输出  printWriter.flush();

        printWriter.flush();

        printWriter.close();

        bufferedReader.close();

     

     outputStreamWriter.close();

     inputStreamReader.close();

     fileOutputStream.close();

     fileInputStream.close();

     System.out.println("文件拷贝完成");

     

    } catch (FileNotFoundException e) {

    

     e.printStackTrace();

    } catch (UnsupportedEncodingException e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    } catch (IOException e) {

     // TODO Auto-generated catch block

     e.printStackTrace();

    }

   }
  
 }

结果 如下:

文件拷贝完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: