java把一个文件的内容写到另外一个文件(FileReader,FileWriter)

package com.test.io01;

import java.lang.String;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test04 {
    public static void main(String[] args) throws IOException {
        //1.有一个源文件
        File f1 = new File("d:\\Test.txt");
        //2.有一个目标文件
        File f2 = new File("d:\\Demo.txt");
        //3.搞一个输入的管,怼到源文件上
        FileReader fr = new FileReader(f1);
        //4.搞一个输出的管,怼到目标文件上
        FileWriter fw = new FileWriter(f2);

        //5.开始动作
        //方式1:一个字符一个字符的复制
       /* int n = fr.read();
        while (n!=-1) {
            System.out.println(n);
            fw.write(n);
            n = fr.read();
        }*/
       //方式2:利用缓冲字节数组
        /*char[] chars = new char[5];
        int len = fr.read(chars);
        while (len != -1) {
            //System.out.println(read);
            // @param  cbuf  Buffer of characters
            // @param  off   Offset from which to start writing characters
            // @param  len   Number of characters to write
            // public void write(char cbuf[], int off, int len) throws IOException {}
            fw.write(chars,0,len); //只读取有效长度
            len = fr.read(chars);
        }//while end*/

        //方式3:利用缓冲字符数组,将数组转为String写出。
        char[] ch = new char[5];
        int len = fr.read(ch);
        while (len != -1) {
            String s = new String(ch, 0, len); //将缓冲数组转换为字符串写入
            //public void write(String str) throws IOException {
            fw.write(s);
            System.out.println(len);
            len = fr.read(ch);
        }

        //6.关闭流 (关闭流的时候,倒着关闭,后用先关)
        fw.close();
        fr.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值