FileReader和FileWriter读写文件,以及拷贝文件。

版权声明: https://blog.csdn.net/Chianz632/article/details/79958963

简介

如果看了上一篇 FileInputStream和FileOutputStream读写文件,然后实现文件的拷贝那么对与这篇就是小菜一碟。唯一区别在于上一个是基于字节流,这个基于字符流。字节流就用byte数组充当缓存,字符流用char数组即可。

文件拷贝

package FileReaderWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class FileChar {
    public static void main(String[] args) throws IOException {
        Scanner input=new Scanner(System.in);
        //写
        System.out.println("请输入文件名:");
        String name=input.next();
        File file=new File(name+".txt");
        System.out.println("请输入要写入的内容:");
        String str=input.next();
        FileWriter fw=new FileWriter(file,true);
//        char []cha=str.toCharArray();
//        fw.write(cha,0,cha.length);
        fw.write(str);//writ()参数里面有写入字符串类型的
        fw.flush();//刷新流
        fw.close();
        System.out.println("写入完毕!");

        //读
        FileReader fr=new FileReader(file);
        char chars[]=new char[512];  //每次最多读1kb
        int temp=0;
        while((temp=fr.read(chars))!=-1){
            System.out.println(new String(chars,0,temp));
        }
        fr.close();
    }
}

当我们在写文件时,可以将要写入的数据转换成char数组,然后再通过write(数组名,0,数组的长度)写入,也可以直接通过write(字符串)。String就相当于由多个字符组成,char数组保存的就是多个字符。

文件拷贝

package FileReaderWriter;

import java.io.*;

public class Copy_Char {
    public static void main(String[] args) throws IOException {
        File file=new File("1.txt");
        if(!file.isFile()){
            System.out.println("文件不存在,无法拷贝!");
            return;
        }
        FileReader fr=new FileReader(file);
        FileWriter fw=new FileWriter("src\\"+file.getName()); //拷贝到src下面
        char chars[]=new char[512];
        int temp=0;
        while ((temp=fr.read(chars))!=-1){
            fw.write(chars,0,temp);
        }
        fw.flush();
        fw.close();
        fr.close();
        System.out.println("拷贝成功!");
    }
}

Java中对文件进行操作时,就会用这4个文件流:FileOutputStream,FileInputStream,FileReader,FileWriter。然后根据需求选择合适的流。


    每日鸡汤:请不要假装很努力,因为结果不会陪你演戏!


Over!

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页