• 【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(); } } } } }
  • 相关阅读:
    解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
    React中使用Ant Table组件
    Maven在Eclipse中的实用小技巧
    knockout+echarts实现图表展示
    深入分析Spring 与 Spring MVC容器
    二维码登录原理及生成与解析
    Maven中安装本地Jar包到仓库中或将本地jar包上传
    sorl6.0+jetty+mysql搭建solr服务
    git revert和reset区别
    java注意的一些细节问题
  • 原文地址:https://www.cnblogs.com/syxy/p/12290354.html
Copyright © 2020-2023  润新知