java核心技术之IO流(三)FileReader和FileWriter

这里写图片描述

简单的说明

从字符类型(char)的文件中读取和写入数据,我们要使用FileWriter和FileReader类来实现。

FileWriter和FileReader

FileWriter类

构造方法:
FileWriter(String filename)
FileWriter(File file)

关键方法:
write(int oneChar)
write(char[] buffer, int offset, int count)

FileReader类

构造方法:
FileReader(String filename)
FileReader(File file)

关键方法:
read()
read(char[] buffer, int offset, int count)

一个测试的Demo

定义三个方法:
(1)testFileReader方法—读取文件内容
FileReader的使用方法:
//1.创建一个输入字符文件
//2.创建一个FileReader对象
//3.调用read方法,读取内容数据
//4. 关闭对应的流

(2)testFileWriter方法—-往文件写内容
FileWriter的使用方法:
//1.创建一个File文件
//2.创建一个FileWriter对象
//3.调用write方法写入数据
//4.关闭对应的输出流

(3)copyByFileReaderFileWriter方法—-复制文件的方法
//1.定义输入和输出的文件
//2.定义输入流和输出流的对象
//3.执行复制操作
//4.关闭对应的流,先关输出流,后关输入流

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


public class FileReaderFileWriter {

    //同时使用FileReader和FileWriter,实现二个文本文件的复制
    public static void copyByFileReaderFileWriter(String src,String des){       
        //2.定义二个字符流,输入流,输出流
        FileReader fr = null;
        FileWriter fw = null;
        try {
            //1.定义二个文件,一个输入,一个输出
            File fin = new File(src);
            File fout = new File(des);
            fr = new FileReader(fin);
            fw = new FileWriter(fout);          
            //3.复制操作
            char[] c = new char[20];
            int len;
            while((len = fr.read(c)) != -1){
                fw.write(c, 0, len);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            //4. 关闭对应的流,先关输出流,再关输入流
            if(fw != null){
                try {
                    fw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(fr != null){
                try {
                    fr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    //FileWriter使用样例---处理字符 
    public static void testFileWriter(){
        //2.定义一个FileWriter对象
        FileWriter fw = null;
        try {
            //1.定义一个输出字符文件
            File f1 =new File("hello_FileWriter.txt");
            fw = new FileWriter(f1);
            //3.输出操作
            String str = "我是中国人,我爱打dota,还爱搞机";
            fw.write(str);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }finally{
            //4.关闭对应的流
            if(fw != null){
                try {
                    fw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    //FileReader使用样例---处理字符 
    public static void testFileReader(){        
        //2.定义一个FileReader
        FileReader fr = null;
        try {
            //1.定义一个输入字符文件
            File f1 =new File("hello.txt");     
            fr = new FileReader(f1);
            //3.读入操作
            char[] c = new char[10];
            int len;
            while((len = fr.read(c)) != -1){
                System.out.print(new String(c,0,len));
            }
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            //4.关闭对应的流
            if(fr != null){
                try {
                    fr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

调用:

//FileReader使用样例---处理字符 
FileReaderFileWriter.testFileReader();  
//FileWriter使用样例---处理字符 
FileReaderFileWriter.testFileWriter();
//同时使用FileReader和FileWriter,实现二个文本文件的复制
FileReaderFileWriter.copyByFileReaderFileWriter("hello_FileWriter.txt", "hello_FileWriter_copy.txt");

参考资料:
1.FileWriter api文档
android_sdk_docs_offline/reference/java/io/FileWriter.html
2.FileReader文档
android_sdk_docs_offline/reference/java/io/FileReader.html
3.FileWriter与FileReader视频
http://edu.csdn.net/course/detail/805/10966?auto_start=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfreeman2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值