outputstreamwriter.write_InputStreamReader

outputstreamwriter.write_InputStreamReader|–字符流(字符流=字节流+编码表。)|–字符输入流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):写一个字符串
public void write(String str,int off,int len):写一个字符串的一部分


    // 创建对象
    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
            "fos.txt"),"UTF-8");
    // 写数据
    // public void write(int c):写一个字符
     osw.write('a');
     osw.write(98);
     osw.write("\r\n");
    // public void write(char[] cbuf):写一个字符数组
     char[] chs = {'q','w','e','r','t'};
     osw.write(chs);
     osw.write("\r\n");
    // public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
     osw.write(chs,1,3);
     osw.write("\r\n");
    // public void write(String str):写一个字符串
     osw.write("public void write(String str):写一个字符串");
     osw.write("\r\n");
    // public void write(String str,int off,int len):写一个字符串的一部分
    osw.write("public void write(String str,int off,int len):写一个字符串的一部分", 2, 3);
     osw.write("\r\n");
    // 刷新缓冲区
    osw.flush();
    // 释放资源

输出:fos.txt
ab
qwert
wer
public void write(String str):写一个字符串
bli

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

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

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


相关推荐

  • 腾讯架构大调整!七大事业群变六大事业群

    腾讯架构大调整!七大事业群变六大事业群微信又改版了,为了方便第一时间看到我们的推送,请按照下列操作,设置“置顶”:点击上方蓝色字体“程序员之家”-点击右上角“…”-点击“设为星标”。可以啦,让我们继续相互陪伴…

    2022年5月12日
    61
  • oracle如何删除表空间文件_oracle删除dbf文件表空间

    oracle如何删除表空间文件_oracle删除dbf文件表空间很多小伙伴在刚刚学习Oracle的时候,想要删除不要的表空间。但很多情况下,没有进行正确的操作,这个就会导致Oracle无法使用,那如何正确的删除表空间呢?具体的操作如下:

    2025年6月23日
    6
  • 数据格式汇总及type, astype, dtype区别「建议收藏」

    数据格式汇总及type, astype, dtype区别「建议收藏」标签(空格分隔):pythonuint8在此输入正文8位的无符号整形数据取值范围从0到255一singed与unsigned的区别二float改变类型643264to32shape翻倍改变类型321632to16shape翻倍改变类型32float32tofloatshape还原float默认是float64改变类型float64intfloat64

    2022年6月11日
    41
  • mysql 乱码 latin1_mysql 数据库 latin1 导致的乱码

    mysql 乱码 latin1_mysql 数据库 latin1 导致的乱码很多年以前遇到 mysql 的乱码问题 最近又遇到了 mysql 这货 默认的编码是 latin1 例如 latin1 swedish ci 实在不明白为什么是这样 而最近 10 年 主流的编码方式已经是 utf8 mysql 中 最初采用 utf8 generalci 与其匹配 后来逐渐地使用 utf8unicode ci 与其匹配 比较神奇的是 有时候 mysql 数据库已经从 lati

    2026年1月16日
    1
  • java volatile 关键字详解「建议收藏」

    java volatile 关键字详解「建议收藏」javavolatile关键字详解一,什么是volatile关键字,作用是什么​volatile是java虚拟机提供的轻量级同步机制​作用是:1.保证可见性2.禁止指令重排3.不保证原子性本篇具体就讲解什么叫保证了可见性,什么叫禁止指令重排,什么是原子性而在这之前需要对JMM有所了解二,什么是JMM​JMM(java内存模型JavaMemoryModel简称JMM)本身是一个抽象的概念,并不在内存中真实存在的,它描述的

    2022年7月18日
    14
  • CE教程步骤8操作指南

    CE教程步骤8操作指南CE 教程步骤 8 操作指南 CE 全称 CheatEngine 是一款专注于游戏的修改器 教程的步骤 8 特别难 这是一个四级指针 比较绕 下面分步解析 其他详细说明请参考别人的博客第一个指针 1 精确数值搜索多次搜索后得到唯一一条数据结论 001A1268 gt VALUE 地址 001A1268 存放数值 2 找出改写这个地址的指针结论 rsi 18 gt 001A1268 rsi 001A1250 指针数值 001A1250 偏移 18 一起改写地址 001A12683 以

    2025年10月18日
    4

发表回复

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

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