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
  • 相关阅读:
    第十五次-语法制导的语义翻译
    第十四次--算符优先分析
    第十二次-递归下降语法分析
    第十一次-LL(1)文法的判断,递归下降分析程序
    第十次-消除左递归
    第九次-DFA最小化,语法分析初步
    个人作业——软件工程实践总结作业
    【评分】Alpha阶段
    K 班前7次作业成绩汇总
    【评分】第七次作业--项目需求分析(团队)
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13624614.html
Copyright © 2011-2022 走看看