IO流丶复制文件方式

InputStream (能产生流的对象,父类)>FileInputStream(创建输入流对象)>BufferedInputStream(缓存字节输入流)                      已字节流的方式读取数据

Reader  (父类)  >InputStreamReader(将字节流转换为字符流)>FileReader(创建输入流对象)                                                                已字符流的方式读取数据

                                  >BufferedReader(缓冲的字符输入流)


同样:

OutputStream (能保存流的对象,父类)>FileOutputStream(创建输出流对象)>BufferedOutputStream(缓存字节输出流)            

Writer(父类)       >OutputStreamWriter( 将字节流转换为字符流)>FileWriter(创建输出流对象)                                                                

                                  >BufferedWriter(缓冲的字符输出流)



package liu;

import java.io.*;

/**
 * 两种流的方式复制文件
 * Created by Administrator on 2017/9/1.
 */
public class Copy {
    //以字符流缓冲对象复制
    public boolean FileReaderCopy(String redStr,String wrtStr) throws Exception{
        FileReader fr = new FileReader(redStr);
        FileWriter fw = new FileWriter(wrtStr,true);
        BufferedReader bufr = new BufferedReader(fr);
        BufferedWriter bufw = new BufferedWriter(fw);
        //一行一行的写。
        String line = null;
        while((line = bufr.readLine()) != null){
            System.out.println(line);
            bufw.write(line);
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
        bufw.close();
        return true;
    }
    //以字节流缓冲复制
    public boolean InputStreamCopy(String redStr,String wrtStr) throws Exception{
        FileInputStream fis = new FileInputStream(redStr);
        FileOutputStream fos = new FileOutputStream(wrtStr,true);
        BufferedInputStream bis = new BufferedInputStream(fis);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        int i = 0;
        while ((i=bis.read())!=-1){
            System.out.println(i);
            bos.write(i);
            bos.flush();

        }

        bis.close();
        bos.close();
        return true;
    }
    public static void main(String[] args) throws Exception {
        Copy inputStreamH = new Copy();
        boolean result = inputStreamH.InputStreamCopy("D:\\aaa.txt","D:\\bbb.txt");
        System.out.println("以字节流来复制文件(无中文乱码)"+result);
        boolean re = inputStreamH.FileReaderCopy("D:\\aaa.txt","D:\\bbb.txt");
        System.out.println("以字符流来复制文件(中文乱码)"+re);
    }


    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值