• Java IO(十七)FIleReader 和 FileWriter


    Java IO(十七)FIleReader 和 FileWriter

    一、介绍

    FIleReader 和 FileWriter 是读写字符文件的便利类,分别继承于 InputStreamReader 和 OutputStreamWriter,同 FileInputStream 和 FileOutputStream 类似。

    • FIleReader:读取字符文件的便利类,继承于InputStreamReader,是用于读取字符流的类。
    • FileWriter:写入字符文件的便利类,继承于OutputStreamReader,是用于写入字符流的类。

    注意:

    • FIleReader 和 FileWriter 是读写字符流的类,如果读取字节流,考虑使用 FileInputStream 和 FileOutputStream。
    • FIleReader 和 FileWriter 不能指定编码集(格式),如果需要指定编码集(格式),考虑使用它们的父类 InputStreamReader 和 OutputStreamWriter。

    二、构造方法

    (一)、FIleReader 

    (二)、FileWriter

    三、常用API

    FileReader 和 FileWriter 直接基于 InputStreamReader 和 OutputStreamWriter 实现的,具体 API 可以参考 Java IO(十六)InputStreamReader 和 InputStreamWriter 

    四、实例

    public class FileDemo {
        private static char[] chs = new char[] 
                {'a','b','c','d','e','f','g','h','i','j','k','l','m',
                'n','o','p','q','r','s','t','u','v','w','x','y','z'};
        public static void main(String[] args) {
            write();
            read();
        }
        
        /**
         * FileWriter 测试
         */
        public static void write() {
            FileWriter out = null;
            try {
                // 给定文件名,并指定追加模式:true,续写到文件中
                out = new FileWriter("file.txt",true);
                out.write("字节流转换为字符的案例");// 写入中文字符
                out.write("0123456789");// 写入数字并换行
                out.write(chs);// 写入字符数组
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if (out != null)
                        out.close();
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        /**
         *  FileReader 测试
         */
        public  static void read() {
            FileReader in = null;
            char[] buff = new char[10];
            int len = 0;
            try {
                in = new FileReader("file.txt");
                System.out.println("read : " + (char)in.read());// 读取一个字符
                in.skip(5);// 跳过5个字符
                len = in.read(buff, 0, 10);// 从0开始读取10个字符缓存到buff中
                System.out.println("buff : " + new String(buff,0,len));
                // 读取剩余字符
                while((len = in.read(buff)) != -1){
                    System.out.println("str : " + new String(buff,0,len));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if (in != null)
                        in.close();
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    02/Oct/2019:11:55:28 类型的时间转换为
    Flume 实时获取日志内容插入MySQL
    MySQL UTC时间转北京时间 | convert_tz()函数
    使用kettle实现循环
    python 获取系统环境变量 os.environ and os.putenv
    Python
    linux如何判断上一条命令执行是否正确
    局域网两台主机通过网络共享文件
    Kettle(Pentaho)实现web方式远程执行job或transformation
    kettle发送邮件 运行日志
  • 原文地址:https://www.cnblogs.com/lingq/p/12929868.html
Copyright © 2020-2023  润新知