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

  • 相关阅读:
    ini_set /ini_get函数功能-----PHP
    【转】那个什么都懂的家伙
    word 2007为不同页插入不同页眉页脚
    August 26th 2017 Week 34th Saturday
    【2017-11-08】Linux与openCV:opencv版本查看及库文件位置等
    August 25th 2017 Week 34th Friday
    August 24th 2017 Week 34th Thursday
    August 23rd 2017 Week 34th Wednesday
    August 22nd 2017 Week 34th Tuesday
    August 21st 2017 Week 34th Monday
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13956057.html
Copyright © 2011-2022 走看看