inputstreamreader和outputstreamwriter_input string

inputstreamreader和outputstreamwriter_input string1.转换流原理2.OutputStreamWriterjava.io.OutputStreamWriterextendsWriterOutputStreamWriter:是字符流通向字节流的桥梁;可使用指定的charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂)2.1继承自父类的共性成员方法:voidwrite(intc)写入单个字符voidwrite(char[]cbuf)写入字符数组abstractvoidwrite(char[]cu

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

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

1.转换流原理

在这里插入图片描述

2. OutputStreamWriter

java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符流通向字节流的桥梁;可使用指定的charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂)

2.1 继承自父类的共性成员方法:

  • void write(int c)写入单个字符

  • void write(char[] cbuf)写入字符数组

  • abstract void write(char[] cubf,int of ,int
    len)写入字符数组的某一部分,off数组开始索引,len写的字符个数

  • void write(String str)写入字符串

  • void write(String str,int off,int len)写入字符串的某一部分,off字符串开始索引,len写的字符个数

  • void flush()刷新该流的缓冲

  • void close()关闭此流,但要先刷新它

2.2 构造方法:

  • OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter

  • OutputStreamWriter(OutputStream out,String
    charsetName)创建使用指定字符集的OutputStreamWriter

    2.2.1 参数:
    OutputStream out:字节输出流,可以用来写转换之后的字节到文件中
    String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,…不指定默认使用UTF-8

2.3 使用步骤:

  • 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称

  • 2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储到缓冲区中(编码)

  • 3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)

  • 4.释放资源

package com.IOAndProperties.ReverseStream;

import java.io.*;

/* java.io.OutputStreamWriter extends Writer OutputStreamWriter:是字符流通向字节流的桥梁;可使用指定的charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂) 继承自父类的共性成员方法: -void write(int c)写入单个字符。 -void write(char[] cbuf)写入字符数组 -abstract void write(char[] cubf,int of ,int len)写入字符数组的某一部分,off数组开始索引,len写的字符个数 -void write(String str)写入字符串 -void write(String str,int off,int len)写入字符串的某一部分,off字符串开始索引,len写的字符个数 -void flush()刷新该流的缓冲 -void close()关闭此流,但要先刷新它。 构造方法: OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter. OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter. 参数: OutputStream out:字节输出流,可以用来写转换之后的字节到文件中 String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF- 使用步骤: 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储到缓冲区中(编码) 3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) 4.释放资源 */
public class Demo02OutputStreamWriter { 
   
    public static void main(String[] args) throws IOException { 
   
// write_utf_8();
        write_gbk();
    }

    /* 使用转换流OutputStreamWriter写GBK格式的文件 */
    private static void write_gbk() throws IOException { 
   
        // 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("基础语法\\gbk.txt"),"GBK") ;
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("基础语法\\gbk.txt")) ;
        //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储到缓冲区中(编码)
        osw.write("你好");
        //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
        osw.flush();
        //关闭资源
        osw.close();
    }

    /* 使用转换流OutputStreamWriter写UTF-8格式的文件 */
    private static void write_utf_8() throws IOException { 
   
      // 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("基础语法\\utf_8.txt"),"UTF-8") ;
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("基础语法\\utf_8.txt")) ;
      //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储到缓冲区中(编码)
        osw.write("你好");
      //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
       osw.flush();
       //关闭资源
        osw.close();
    }
}

3.InputStreamReader

java.io.InputStreamReader extends Reader
InputStreamReader:是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。(解码:把看不懂的变成能看到懂的)

3.1 继承自父类的共性成员方法:

  • int read() 读取单个字符并返回

  • int read(char[] cbuf)一次读取多个字符,将字符读入数组

  • void close() 关闭该流并释放与之关联的所有资源、

3.2 构造方法

  • InputStreamReader(InputStream in)创建一个使用默认字符集的InputStream.

  • InputStreamReader(InputStream in,String
    charsetName)创建使用指定字符集的InputStreamReader.

    3.2.1 参数:

  • InputStream in:字节输入流,用来读取文件中保存的字节

  • String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,…不指定默认使用UTF-8

3.3 使用步骤:

  • 1.创建InputStreamReader对象,构造方法中传递字节输入流 和指定的编码表名称

  • 2.使用InputStreamReader对象中的方法read读取文件

  • 3.释放资源

3.4 注意事项:

  • 构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码
package com.IOAndProperties.ReverseStream;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/* java.io.InputStreamReader extends Reader InputStreamReader:是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。(解码:把看不懂的变成能看到懂的) 继承自父类的共性成员方法: int read() 读取单个字符并返回 int read(char[] cbuf)一次读取多个字符,将字符读入数组 void close() 关闭该流并释放与之关联的所有资源、 构造方法 InputStreamReader(InputStream in)创建一个使用默认字符集的InputStream. InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的InputStreamReader. 参数: InputStream in:字节输入流,用来读取文件中保存的字节 String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8 使用步骤: 1.创建InputStreamReader对象,构造方法中传递字节输入流 和指定的编码表名称 2.使用InputStreamReader对象中的方法read读取文件 3.释放资源 注意事项: 构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码 */
public class Demo03InputStreamReader { 
   
       public static void main(String[] args) throws IOException { 
   
// read_utf_8();
           read_gbk();
       }
    /* 使用InputStreamReader读取UTF-8读取UTF-8格式的文件 */
    private static void read_gbk() throws IOException { 
   
        //1.创建InputStreamReader对象,构造方法中传递字节输入流 和指定的编码表名称
           InputStreamReader isr = new InputStreamReader(new FileInputStream("基础语法\\gbk.txt"),"gbk");
        //2.使用InputStreamReader对象中的方法read读取文件
        int len = 0;
        while ((len=isr.read())!=-1){ 
   
            System.out.println((char)len);
        }
        //释放资源
        isr.close();
    }
    /* 使用InputStreamReader读取UTF-8读取UTF-8格式的文件 */
       private static void read_utf_8() throws IOException { 
   
           //1.创建InputStreamReader对象,构造方法中传递字节输入流 和指定的编码表名称
// InputStreamReader isr = new InputStreamReader(new FileInputStream("基础语法\\utf_8.txt"),"utf-8");
           InputStreamReader isr = new InputStreamReader(new FileInputStream("基础语法\\utf_8.txt"));
           //2.使用InputStreamReader对象中的方法read读取文件
           int len = 0;
           while ((len=isr.read())!=-1){ 
   
               System.out.println((char)len);
           }
           //释放资源
           isr.close();
       }
   }

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

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

(0)
上一篇 2025年10月27日 下午6:22
下一篇 2025年10月27日 下午7:01


相关推荐

  • oracle 表空间删除文件,如何正确的删除表空间数据文件

    oracle 表空间删除文件,如何正确的删除表空间数据文件如何正确的删除表空间数据文件应该使用如下的命令删除 ALTERTABLESP 参考 mos 文章 UnabletoDrop 文档 ID 1 违反下列任何一个条件 该 datafile 均不能被 drop 1 必须为空

    2026年3月17日
    2
  • 工程师的基本功是什么?如何练习?—学习心得分享「建议收藏」

    开头聊几句1、周末休息,今天下雨了,气温还行,不冷不热2、刚看完《这!就是街舞》,很燃很炸,一些作品表达的东西也很让人感动3、发现真正热爱的事情,并为之付出所有的能量,很让人羡慕开头周四上线到比较晚,好在中间有空,去公司楼下湖边散了散步,上线回到家,已经是凌晨了。周五中午在去公司的路上看到了美团技术团队的一篇文章,觉得很不错,值得学习,也分享到朋友圈了,希望保留下方便自己查阅,也分享给更多的技术伙伴,一起看好的文章。在技术之路上,不断的持续学习,持续进步,一起精进。那天朋友圈分享美团的这

    2022年3月1日
    45
  • Linux系统下使用gfortran

    Linux系统下使用gfortranLinux 系统下使用 gfortran 之前习惯了在 win 下用 fortran 写一些简单的专业课作业 切换到 linux 一脸懵逼 在此一一记录下踩过的坑 Linux 基本命令不完全总结第一次接触 linux 甚至如何关机都要问度娘 我实在是太菜了 我先把我迄今为止用到的命令做一个小结作为第一部分 gfortran 的用法在第二部分 超基础命令 shutdown hnow 立即关机 定时关机就把 now 改成时间 例如 10 53 10min reboot 重启 ls dir 查看文件夹下的全部文件

    2026年3月26日
    2
  • 深入学习USB(6)USB Type-C接口定义概念解析

    深入学习USB(6)USB Type-C接口定义概念解析一 Usbtypec 接口定义介绍 USBType C 接口总计有 24 个针脚 可以正反插且传输速度快 接口没有方向性 让用户在使用中避免出现插错的情况 一般简称有 typec type c 等这些指的都是同一个产品 而 USB3 0 接口通常是 9 到 11 个 USB2 0 只有 4 个针脚 针脚的增多并没有导致 Type C 接口体积变大 实际上它还缩小了体积 相对标准口来说 满足了移动设备的需求 二 USB3 1type c 接口特性特性 1 全新接口设计 尺寸约 8 4mmx2 6mm 接口纤薄特性 2 功率输出能

    2026年3月17日
    2
  • 445port入侵具体解释

    445port入侵具体解释

    2021年12月1日
    41
  • 人工智能之产生式系统(c++实现)

    人工智能之产生式系统(c++实现)这次的人工智能实验是产生式系统 动物分类 规则库 R1 动物有毛发 哺乳类 R2 动物有奶 哺乳类 R3 动物有羽毛 鸟类 R4 动物会飞 会下蛋 鸟类 R5 哺乳类 动物吃肉 食肉动物 R6 动物有犬齿 有爪 眼盯前方 食肉动物 R7 哺乳类 有蹄 蹄类 R8 哺乳类 反刍 蹄类 R9 哺乳类 食肉动物 黄褐色 有

    2026年3月18日
    3

发表回复

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

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