zoukankan      html  css  js  c++  java
  • IO字符流

    IO字符流

    在字节流中,因为中文字符使用多个字节且不同编码表有区别,因此可能会出现乱码。用字符流可以有效解决该问题。

    字符输入流Reader

    方法:read、read(char[] chars)、close,作用与字节流类似

    一个子类

    文件字节输入流

    继承关系:

    FileReader extends InputStreamReader extends Reader

    作用:把文件以字符形式从硬盘读入内存

    构造方法:

    FileReader(String filename)

    FileReader(File file)

    作用:

    1.创建一个FileReader对象;

    2.把该对象指向要读的文件

    使用步骤

    1.创建一个FileReader对象,构造方法传递数据读取目的地

    2.调用FileReader对象的read方法,读取数据

    3.释放资源(调用close方法)

    代码练习

    public static void main(String[] args) throws IOException {
        File file = new File("Month" + File.separator + "src" + File.separator + "LearnIO" + File.separator + "a.txt");
        FileReader fileReader = new FileReader(file);
        char[] cr = new char[1024];
        while(fileReader.read(cr) != -1) {
            System.out.print(cr);
        }
    
        fileReader.close();
    }

    字符输出流Writer

    方法:write、write(char[] chars)、write(String string)、flush、close,作用与字节流类似

    一个子类

    文件字节输出流

    继承关系: FileWriter extends OutputStreamWriter extends Writer

    作用:把文件以字符形式从内存写入缓冲区

    构造方法: FileWriter(String filename)

    FileWriter(File file)

    作用: 1.创建FileWriter对象 2.根据构造方法中传递的文件/文件路径,创建一个空文件 3.把对象指向创建好的文件

    使用步骤

    1.创建一个FileWriter对象,构造方法传递数据读取目的地 2.调用FileWriter对象的write方法,将数据写入缓冲区

    3.调用flush方法,把内存缓冲区数据刷新到文件中

    (该方法不会关闭流,流对象可以继续使用)

    4.释放资源(调用close方法)

    代码练习

    public static void main(String[] args) {
        File file = new File("Month" + File.separator + "src" + File.separator + "LearnIO" + File.separator + "a.txt");
        FileWriter fileWriter = null;
    
        try {
            fileWriter = new FileWriter(file, true);
            String str = "java程序";
            fileWriter.write(str);
            fileWriter.flush();
        } catch (IOException var12) {
            var12.getStackTrace();
        } finally {
            if (fileWriter != null) {
                try {
                    fileWriter.close();
                } catch (IOException var11) {
                    var11.getStackTrace();
                }
            }
    
        }

    追加与换行

    FileWriter类的构造方法

    FileWriter(String pathname ,boolean append)

    FileWriter(File file ,boolean append)

    参数boolean append 是追加开关

    true: 创建对象不会创建文件,在源文件后追加写入数据

    flase: 覆盖原文件

    换行符号: win: linux:/n mac:/r

  • 相关阅读:
    RocketMQ(三)——————javaAPI (2.发送异步消息)
    RocketMQ(三)——————javaAPI (1.发送同步消息)
    RocketMQ(二)——————消息 message
    RocketMQ(—)——————角色介绍(单体--集群)
    ThreadLocal
    生产者 和 消费者 2
    生产者 和 消费者 1
    bootstrap 数据显示表格 layui 遮罩层
    线程池-实现一个取消选项
    线程池与并行度
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13956057.html
Copyright © 2011-2022 走看看