outputstreamwriter和filewriter_类文件解析

outputstreamwriter和filewriter_类文件解析|–字符流(字符流=字节流+编码表。)|–字符输入流Reader——抽象类intread():一次读取一个字符intread(char[]chs):一次读取一…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

|--字符流( 字符流 = 字节流 +编码表。)
            |--字符输入流
                Reader                                   ------抽象类 
                    int read():一次读取一个字符
                    int read(char[] chs):一次读取一个字符数组

                    |--InputStreamReader                 ------extends  Reader
                        InputStreamReader = FileInputStream + 编码表(GBK)
                        |--FileReader                    ------extends InputStreamReader
                            FileReader = FileInputStream + 编码表(GBK)


                    |--BufferedReader                    ------extends  Reader
                        String readLine():一次读取一个字符串

                    |--StringReader                      ------extends  Reader

            |--字符输出流
                Writer                                   ------抽象类 
                    void write(int ch):一次写一个字符
                    void write(char[] chs,int index,int len):一次写一个字符数组的一部分

                    |--OutputStreamWriter                ------extends Writer
                            OutputStreamWriter = FileOutputStream + 编码表(GBK)
                        |--FileWriter                    ------extends OutputStreamWriter
                            FileWriter = FileOutputStream + 编码表(GBK)

                    |--BufferedWriter                    ------extends Writer
                        void newLine():写一个换行符
                        void write(String line):一次写一个字符串

                    |--PrintWriter                       ------extends Writer
                    |--StringWriter                      ------extends Writer
  • OutputStreamWriter :OutputStreamWriter = FileOutputStream + 编码表(GBK)

  • 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。

  • 每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。

  • 为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如: Writer out
    = new BufferedWriter(new OutputStreamWriter(System.out));

  • 构造方法:
    -OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流
    -OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流

  • 常用方法:
    -public void write(int c):写一个字符
    -public void write(char[] cbuf):写一个字符数组
    -public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
    -public void write(String str):写一个字符串

@Test
public void testOsw()throws Exception{

    String path = this.getClass().getResource("/test7").getPath();
    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(new File(path)));
    osw.write("a");
    osw.write(98);
    osw.write("\n");

    osw.write(new char[]{'a','b','c','d','e'});
    osw.write("\n\r");

    osw.write(new char[]{'a','b','c','d','e'},0,2);
    osw.write("\n\r");

    osw.write("hello world");
    osw.write("\n\r");

    osw.write("hello world",0,5);
    osw.write("\n\r");

    osw.flush();
    osw.close();
}

@Test
public void testBw()throws Exception{

    String path = this.getClass().getResource("/test7").getPath();

    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path))));

    bw.write("a");
    bw.write(98);
    bw.write("\n");
    bw.newLine();

    bw.write(new char[]{'a','b','c','d','e'});
    bw.write("\n\r");

    bw.write(new char[]{'a','b','c','d','e'},0,2);
    bw.write("\n\r");

    bw.write("hello world");
    bw.write("\n\r");

    bw.write("hello world",0,5);
    bw.write("\n\r");

    bw.flush();
    bw.close();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QMap类说明[通俗易懂]

    QMap类说明[通俗易懂]QMap是一个模板类,提供了一个红黑树结构的查找字典。注:红黑树结构是自平衡二叉树QMap是一个QT常用的容器类,它存储键值队,并且可以很快的根据键查找值。QMap和QHash提供很类似的功能,他们的区别如下:1. QHash的查找性能更好;2.在遍历QHash时,里面是已经按字母排序好的,但是对于QMap,里面的东西都是按键分类的。3.QHash的键类型必须提供一

    2022年5月29日
    44
  • LINUX 命令 之 zip 解压缩

    LINUX 命令 之 zip 解压缩1.zip命令zip-rmyfile.zip./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.2.unzip命令unzip-o-d/home/sunnymyfile.zip把myfile.zip文件解压到/home/sunny/-o:不提示的情况下覆盖文件;-d:-d/home/sunny指明将文件解压缩到/…

    2022年6月3日
    32
  • 主键、唯一键与唯一索引的区别

    一般,我们看到术语“索引”和“键”交换使用,但实际上这两个是不同的。索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念。键代表创建来实施业务规则的完整性约束。索引和键的混淆通常是由于数据库使用索

    2021年12月24日
    48
  • Android HandlerThread 详解

    Android HandlerThread 详解概述HandlerThread相信大家都比较熟悉了,从名字上看是一个带有Handler消息循环机制的一个线程,比一般的线程多了消息循环的机制,可以说是Handler+Thread的结合

    2022年6月30日
    24
  • manage.py作用_python源码库

    manage.py作用_python源码库源码目录结构ApiResponse这个类没啥好说的classApiResponse(Response):"""继承了requests模块中的Response类

    2022年7月30日
    9
  • 最短路径算法–无向图[通俗易懂]

    最短路径算法–无向图[通俗易懂]最短路径算法Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法。该算法被称为是“贪心算法”的成功典范。1、表示图的数据结构邻接列表邻接列表:在邻接列表实现中,每一个顶点会存储一个从它这里开始的边的列表。比如,如果顶点A有一条边到B、C和D,那么A的列表中会有3条边邻接…

    2022年5月24日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号