FileWriter和FileReader的基本使用

FileWriter的效果等同于OutputStreamWriter+FileOutputStream

FileWriter的两个构造方法和OutputStreamWriter的两个构造方法参数一致

FileReader的效果等同于InputStreamReader+FileInputStream

FileReader的构造方法和InputStreamReader的构造方法类似

FileWriter常用方法

write(int n)

write(String str)

write(String str, int offset, int len)

write(char[] cbuf)

write(char[] cbuf, int offset, int len)

FileReader常用方法

int read();

int read(char[] cbuf, int offset, int length);

int read(char[] cbuf);

举个栗子

package com.wondream.myframework.app.basictest.io;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.jupiter.api.Test;

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

public class FileReaderWriterTest {

    Log logger = LogFactory.getLog(FileReaderWriterTest.class);

    @Test
    public void execute(){
        FileReader fr = null;
        FileWriter fw = null;
        try{
            File file = new File("./logs/fileReaderWriter.txt");
            fw = new FileWriter(file);
            fw.write("我是渣渣辉!");
            fw.flush();
            fr = new FileReader(file);
            int dataLen = -1;
            int bufferLen = 1024*100;
            char[] buffer = new char[bufferLen];
            if((dataLen = fr.read(buffer, 0, bufferLen))!=-1){
                logger.info(new String(buffer, 0, dataLen));
            }
        } catch (Exception e){

        } finally {
            try {
                if(fr!=null){
                    fr.close();fr = null;
                }
                if(fw!=null){
                    fw.close();fw = null;
                }
            } catch (Exception e){}
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FileReaderFileWriterJava中用于读取和写入文件的类。FileReader用于读取字符文件,而FileWriter用于写入字符文件。这两个类都是基于字符流的,可以读取和写入Unicode字符。使用FileReaderFileWriter可以方便地读取和写入文本文件。 ### 回答2: FileReaderFileWriterJava中输入和输出字符流相关的类,用于读取和写入文件内容。使用FileReader可以读取文件中的字符数据,配合BufferedReader类可以按行读取内容;使用FileWriter可以将数据以字符形式写入到文件中。 FileReaderFileWriter最大的好处是可以直接对文件进行读写操作,无需通过其他流来进行处理,同时它们支持Unicode字符编码,可以处理多种不同编码的文件。使用这两个类可以进行文件的读写,包括文本文件、XML文件等等。 FileReader使用步骤为首先创建一个FileReader对象,并指定要读取的文件路径,然后使用read()方法读取文件中的字符,每次读取一个字符,直到返回-1表示文件读取结束。在读取文件时,需要关闭FileReader对象,以释放资源。 FileWriter使用步骤为首先创建一个FileWriter对象,并指定要写入的文件路径,然后使用write()方法将数据以字符形式写入到文件中。在写入文件时,需要关闭FileWriter对象,以确保文件写入完成。 总之,使用FileReaderFileWriter可以方便地读写文件,适合于处理文本文件内容。在实际开发中,使用这两个类可以很好地帮助我们完成文件的输入输出任务。 ### 回答3: FileReaderFileWriterJava中常用的文件输入输出类,用于读取或写入文件中的数据,是Java中文件读写操作的核心类之一。下面我们来详细了解一下这两个类的用法和注意事项。 使用FileReader读取文件数据时,需要创建一个FileReader对象,然后使用该对象的read()方法逐字符地读取文件内容,并将其存储到缓冲区中,直至文件末尾。读取文件的示例代码如下: FileReader fr = new FileReader("filename.txt"); int ch; while ((ch = fr.read()) != -1) { System.out.print((char) ch); } fr.close(); 使用FileWriter写入数据到文件时,同样要创建一个FileWriter对象,然后使用该对象的write()方法向文件中逐字符地写入数据。写入文件的示例代码如下: FileWriter fw = new FileWriter("filename.txt"); fw.write("Hello World!\n"); fw.write("This is a test message."); fw.close(); 需要注意的是,使用FileReaderFileWriter进行文件操作时存在着一些潜在的风险和问题。 首先,两者都是使用单个线程进行文件读写,当文件过大时,可能会导致程序阻塞和性能瓶颈。对于大文件的读取和写入,建议使用BufferedReader和 BufferedWriter等类进行操作。 其次,FileReaderFileWriter都是字符流类,读写的数据是字符类型,如果需要读写二进制数据或图片等,则需使用字节流类如FileInputStream和FileOutputStream等。 最后,当操作完成后,需要关闭文件流对象,避免资源浪费和文件打开异常。建议使用try-catch-finally语句块或者Java7中的try-with-resources语法糖处理异常和关闭文件。 总之,使用FileReaderFileWriter进行文件读写是Java中文件输入输出中的一种常用方式,但需要注意线程安全、数据类型和资源释放等问题。在实际应用中,要根据具体的需求选取不同的文件操作类进行文件读写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值