zoukankan      html  css  js  c++  java
  • Java IO(十六)InputStreamReader 和 InputStreamWriter

    Java IO(十六)InputStreamReader 和 InputStreamWriter

    一、介绍

    InputStreamReader 和 OutputStreamWriter 是字节流通向字符流的桥梁:它使用指定的 charset 读写字节并将其解码为字符。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

    • InputStreamReader:字节字符转换输入流,继承于 Reader,它的的作用是将字节输入流转换成字符输入流。
    • OutputStreamWriter :字节字符转换输出流,继承于 Writer,它的的作用是将字节输出流转换成字符输出流。

    二、构造方法

    (一)、InputStreamReader 

    (二)、InputStreamWriter

    三、常用API

    (一)、InputStreamReader 

    (二)、InputStreamWriter

    四、实例

    public class Demo {
        private static char[] chs = new char[] 
                {'a','b','c','d','e','f','g','h','i','j','k','l','m',
                'n','o','p','q','r','s','t','u','v','w','x','y','z'};
        public static void main(String[] args) {
            write();
            read();
        }
        /**
         * OutputStreamWriter 测试
         */
        public static void write() {
            OutputStreamWriter out = null;
            try {
                out = new OutputStreamWriter(new FileOutputStream(new File("demo.txt")));
                out.write(chs);// 写入字符数组
                out.write('A');// 写入字符A
                out.write("0123456789");// 写入字符串
                out.write(chs, 10, 10);// 写入字符数组的一部分
                String str = new String(chs).toUpperCase();// 将字符数组转成字符串并大写
                out.write(str, 0, 10);// 写入字符串的一部分
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if(out != null)
                        out.close();
                }catch(Exception e) {
                    e.printStackTrace();
                }
            }
        }
        /**
         * InputStreamReader 测试
         */
        public static void read() {
            InputStreamReader in = null;
            char[] buff = new char[20];
            int len = 0;
            try {
                in = new InputStreamReader(new FileInputStream(new File("demo.txt")));
                for(int i = 0;i < 5;i++) {
                    if(in.ready())
                        System.out.println("read() : " + (char)in.read());// 读取一个字符
                }
                len = in.read(buff, 0, 10);// 读取字符一部分
                System.out.println("read(buff, 0, 10) : " + new String(buff,0,len));
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if(in != null)
                        in.close();
                }catch(Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    springboot02-SpringSecurity
    java基础07- 二维数组
    java基础06-数组的使用
    逆向工程核心原理——第四章
    逆向工程核心原理——第三章
    Crackme_1_Acid_burn
    Crackme_2_Afkayas.1
    逆向工程核心原理——第二章
    MessageBox
    Python(基础)
  • 原文地址:https://www.cnblogs.com/lingq/p/12929865.html
Copyright © 2011-2022 走看看