Java的IO流--FileWriter和FileReader

FileWriter和FileReader一般成对的出现,它们都是字符流。用法和前面讲的FileInputStream和FileOutputStream一样,只是应用的范围不一样(文件字符流用于纯文本文件的读写比较快速)。
继续将前面的结构图贴一下:
这里写图片描述
FileReader继承自InputStreamReader
FileWriter继承自OutputStreamReader

Reader是一个抽象类,定义了一系列的方法规范:
这里写图片描述

下面来看一下范例:

package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class testFileReader {
    public static void main(String[] args) {
        try {
            //创建文件输入字符流
            FileReader read = new FileReader("F:/test");
            //开始读,返回的是读入字符的Ascall码值
            int t1 = read.read();
            System.out.println(t1);
            read.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

以下是FileWriter的使用,方式和FileOutputStream雷同

package IO;

import java.io.FileWriter;
import java.io.IOException;

public interface testFileWriter {
    public static void main(String[] args) {
        try {
            //FileWriter writer = new FileWriter("F:/test1");
            FileWriter writer = new FileWriter("F:/test1",true);//追加方式的写入,否则会覆盖文件前面的内容
            writer.write("Hello World!");
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

用FileWriter和FileReader实现文本的复制粘贴:

package IO;

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

public class FileReaderAndFileWriter {
    public static void main(String[] args) {
        try {
            //创建输出字符流对象
            FileReader reader = new FileReader("F:/test");
            //创建输入字符流对象
            FileWriter writer = new FileWriter("F:/test4");
            //创建存放char数组
            char[] c = new char[512];
            int temp = 0;
            //将字符读入c数组中,当读到空字节的时候返回-1
            while((temp=reader.read(c)) !=-1) {
                //将c数组中的字符写入输入字符流中
                writer.write(c,0,7);
            }

            //关闭字符流
            reader.close();
            writer.close();
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值