zoukankan      html  css  js  c++  java
  • 104.Java中IO流_字符流_Writer

    Writer

    Writer中的常见的方法:

    1,write(ch): 将一个字符写入到流中。

    2,write(char[]): 将一个字符数组写入到流中。

    3,write(String): 将一个字符串写入到流中。

    4,flush():刷新流,将流中的数据刷新到目的地中,流还存在。

    5,close():关闭资源:在关闭前会先调用flush(),刷新流中的数据去目的地。然流关闭。

    发现基本方法和OutputStream 类似,有write方法,功能更多一些。可以接收字符串。

    同样道理Writer是抽象类无法创建对象。查阅API文档,找到了Writer的子类FileWriter

    1:将文本数据存储到一个文件中。

    public class IoTest2_Writer {
    
        public static void main(String[] args) throws Exception {
            String path = "c:/ab.txt";
    
            writeToFile(path);
        }
    
        /**
         * 写指定数据到指定文件中
         * 
         */
        public static void writeToFile(String path) throws Exception {
            Writer writer = new FileWriter(path);
            writer.write('中');
            writer.write("世界".toCharArray());
            writer.write("中国");
    
            writer.close();
        }
    }

    2:追加文件:

    默认的FileWriter方法新值会覆盖旧值,想要实现追加功能需要

    使用如下构造函数创建输出流 append值为true即可。

    FileWriter(String fileName, boolean append)

    FileWriter(File file, boolean append)

    3:flush方法

       如果使用字符输出流,没有调用close方法,会发生什么?

    private static void writeFileByWriter(File file) throws IOException {
            FileWriter fw = new FileWriter(file);
            fw.write('新');
    fw.flush();
            fw.write("中国".toCharArray());
            fw.write("世界你好!!!".toCharArray());
            fw.write("明天");    
            // 关闭流资源
            //fw.close();
        }

    程序执行完毕打开文件,发现没有内容写入.原来需要使用flush方法. 刷新该流的缓冲。

    为什么只要指定claose方法就不用再flush方法,因为close也调用了flush方法.

    author@nohert
  • 相关阅读:
    poj 2516 Minimum Cost (最小费用流 )
    new start
    关于c语言中的声明和定义
    多态性与虚函数之对象切片
    C专家编程之typedef
    QGroupBox设置边框
    多态性与虚函数之继承中的virtual 晚捆绑
    使用Map
    遍历控件
    C专家编程之枚举
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624614.html
Copyright © 2011-2022 走看看