字符流-FileReader、FileWriter-读写文件

读FileReader:

FileReader类从InputStreamReader类继承而来。该类按字符读取流中数据。可以通过以下几种构造方法创建需要的对象。

在给定从中读取数据的 File 的情况下创建一个新 FileReader。

FileReader(File file)

在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。

FileReader(FileDescriptor fd) 

在给定从中读取数据的文件名的情况下创建一个新 FileReader。

FileReader(String fileName) 

创建FIleReader对象成功后,可以参照以下列表里的方法操作文件。

序号 文件描述
1 public int read() throws IOException
读取单个字符,返回一个int型变量代表读取到的字符
2 public int read(char [] c, int offset, int len)
读取字符到c数组,返回读取到字符的个数

写FileWriter:

FileWriter 类从 OutputStreamWriter 类继承而来。该类按字符向流中写入数据。可以通过以下几种构造方法创建需要的对象。

在给出 File 对象的情况下构造一个 FileWriter 对象。

FileWriter(File file)

在给出 File 对象的情况下构造一个 FileWriter 对象。

 FileWriter(File file, boolean append)

参数:

  • file:要写入数据的 File 对象。
  • append:如果 append 参数为 true,则将字节写入文件末尾处,相当于追加信息。如果 append 参数为 false, 则写入文件开始处。

    构造与某个文件描述符相关联的 FileWriter 对象。

    FileWriter(FileDescriptor fd)

    在给出文件名的情况下构造 FileWriter 对象,它具有指示是否挂起写入数据的 boolean 值。

    FileWriter(String fileName, boolean append)

    创建FileWriter对象成功后,可以参照以下列表里的方法操作文件。

    序号 方法描述
    1 public void write(int c) throws IOException
    写入单个字符c。
    2 public void write(char [] c, int offset, int len)
    写入字符数组中开始为offset长度为len的某一部分。
    3 public void write(String s, int offset, int len)
    写入字符串中开始为offset长度为len的某一部分。

 

实例:

import java.io.*;
 
public class FileRead {
    public static void main(String args[]) throws IOException {
        File file = new File("Hello1.txt");
        // 创建文件
        file.createNewFile();
        // creates a FileWriter Object
        FileWriter writer = new FileWriter(file);
        // 向文件写入内容
        writer.write("This\n is\n an\n example\n");
        writer.flush();
        writer.close();
        // 创建 FileReader 对象
        FileReader fr = new FileReader(file);
        char[] a = new char[50];
        fr.read(a); // 从数组中读取内容
        for (char c : a)
            System.out.print(c); // 一个个打印字符
        fr.close();
    }
}
以上实例编译运行结果如下:

This
is
an
example
发布了252 篇原创文章 · 获赞 5 · 访问量 7793

猜你喜欢

转载自blog.csdn.net/qq_32603969/article/details/104030753