0
点赞
收藏
分享

微信扫一扫

【Java】FileReader和FileWrite基本使用


【Java】FileReader和FileWrite基本使用_FileWrite

【Java】FileReader和FileWrite基本使用_FileReader_02

文章目录

  • 1. FileReader 和FileWriter是字符流,即按照字符来操作 IO
  • 2. FileWriter 常用方法
  • 3. 案例演示

1. FileReader 和FileWriter是字符流,即按照字符来操作 IO

【Java】FileReader和FileWrite基本使用_字符串_03

  • FileReader相关方法:
  1. new FileReader(File/String)
  2. read:每次读取单个字符,返回该字符,如果到文件末尾返回-13)read(char[):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回 -1
  • 相关API:
  1. new String(char[]):将char[]转换成String
  2. new String(char[], off, len):将char[]的指定部分转换成String

2. FileWriter 常用方法

  1. new FileWriter(File/String):覆盖模式,相当于流的指针在首端
  2. new FileWriter(File/String, true):追加模式,相当于流的指针在尾端
  3. write(int):写入单个字符
  4. write(char[]):写入指定数组
  5. write(char[], off, len):写入指定数组的指定部分
  6. write (string):写入整个字符串
  7. write(string, off, len):写入字符串的指定部分
  • 相关APl: String类:toCharArray:将String转换成char[]
  • 注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件

3. 案例演示

  1. 单个字符读取文件:使用 FileReader 从 poetry.txt 读取内容,并显示

/**
 * 单个字符读取文件
 */
@Test
public void readFile01() {
    String filePath = "e:\\poetry.txt";
    FileReader fileReader = null;
    int data = 0;
    // 创建FileReader对象
    try {
        fileReader = new FileReader(filePath);
        // 循环读取 使用read, 单个字符读取
        while ((data = fileReader.read()) != -1) {
            System.out.print((char) data);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fileReader != null) {
                fileReader.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

【Java】FileReader和FileWrite基本使用_数组_04

  1. 字符数组读取文件

/**
 * 字符数组读取文件
 */
@Test
public void readFile02() {
    String filePath = "e:\\poetry.txt";
    FileReader fileReader = null;
    int readLen = 0;
    char[] buf = new char[8];
    // 创建FileReader对象
    try {
        fileReader = new FileReader(filePath);
        // 循环读取 使用read(buf), 返回的是实际读取到的字符数
        // 如果返回-1, 说明到文件结束
        while ((readLen = fileReader.read(buf)) != -1) {
            System.out.print(new String(buf, 0, readLen));
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fileReader != null) {
                fileReader.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  1. 使用 FileWriter 将 “兮动人” 写入到 poetry.txt 文件中

String filePath = "e:\\note.txt";
        // 创建FileWriter对象
        FileWriter fileWriter = null;
        char[] chars = {'a', 'b', 'c'};
        try {
        	//默认是覆盖写入,后面加 true 就是增加
            fileWriter = new FileWriter(filePath);
//            3) write(int):写入单个字符
            fileWriter.write('X');
//            4) write(char[]):写入指定数组
            fileWriter.write(chars);
//            5) write(char[],off,len):写入指定数组的指定部分
            fileWriter.write("兮动人".toCharArray(), 0, 2);
//            6) write(string):写入整个字符串
            fileWriter.write("闲来时兮遣思绪,意越为兮雲幻境。");
//            7) write(string,off,len):写入字符串的指定部分
            fileWriter.write("君意风兮何所依,吾忆游兮万物间。", 0, 3);
            
            //在数据量大的情况下,可以使用循环操作
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            //对应FileWriter , 一定要关闭流,或者flush才能真正的把数据写入到文件
            try {
                //fileWriter.flush();
                //关闭文件流,等价 flush() + 关闭
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }


举报

相关推荐

0 条评论