• 【Java】IO流--转换流--InpuStreamReader、OutputStreamWriter


    转换流--InpuStreamReader、OutputStreamWriter

    类型:处理流

    作用

    用于将字节流转化成字符流,字符流与字节流之间的桥梁

    InputStreamReader

    字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

    InputStreamReader 的作用是把 InputStream 转换成 Reader

    OutputStreamWriter

    OutputStreamWriter是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset 。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

    OutputStreamWriter 的作用是把 OutputStream 转换成 Writer

    存在将字节流转换成字符流的转换流,因为字符流操作文本更简单

    不存在把字符流转换成字节流的转换流,因为没有必要

    代码

    System.in 代表标准输入,即键盘输入,是 InputStream 的实例

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    
    public class TestIROW {
        public static void main(String[] args) {    
            BufferedReader br=null;
            BufferedWriter bw=null;
            try {
                //任务需求,从键盘获取数据,写入磁盘文件
                //(1)数据源是标准的输入设备,键盘System.in
                InputStream is=System.in;
                //(2)需要使用转换流,转换成字符流
                InputStreamReader isr=new InputStreamReader(is, "UTF-8");
                //(3)提高读取效率
                br = new BufferedReader(isr);
                //(4)提高写入效率
                bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F://copy5.txt"), "UTF-8"));
                //(5)写入磁盘文件
                String str=null;
                while(!"over".equals(str=br.readLine())) {
                    bw.write(str);
                    bw.newLine();
                }
           bw.flush(); }
    catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //(6)关闭 if(bw!=null) { try { bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(br!=null) { try { br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
  • 相关阅读:
    redis 键命令
    redis 数据类型
    java向word写入数据
    Eclipse发布到tomcat提示java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    Unable to locate Spring NamespaceHandler for XMLschemanamespace http://dubbo.apache.org/schema/dubbo
    5.Dubbo之Spring XML配置
    6.Dubbo之XML配置详解。
    7.Dubbo之最佳实践
    RESTful API实践
    Jav程序执行Linux命令
  • 原文地址:https://www.cnblogs.com/syxy/p/12290354.html
Copyright © 2020-2023  润新知