zoukankan      html  css  js  c++  java
  • Java第三十三天,IO操作(续集),字符转换流

    计算机都是以二进制码格式存储文件的,但是在读写文件的过程中,每个应用程序都有自己的编码格式。FileWrite和FileRead类是通过查询系统默认码表进行读写的,因此在自己的系统上能够实现编码的智能化。但是在进行程序开发的时候,我们需要统一用户交互的编码,这个时候,就需要用到字符转换流了,FileWrite和FileRead类就不够用了

    一、OutputStreamWriter

    1.构造方法

    OutputStreamWriter(OutputStream out) 

    OutputStreamWriter(OutputStream out, Charset cs)

    OutputStreamWriter(OutputStream out, CharsetEncoder enc)

    OutputStreamWriter(OutputStream out, String charsetName)

    2.常用方法

    void close() ===> 关闭流,先刷新

    void flush() ===> 刷新流

    String getEncoding() ===> 返回此流使用的字符编码的名称

    void write(char[] cbuf, int off, int len) ===> 写入字符数组的一部分

    void write(int c) ===> 写一个字符

    void write(String str, int off, int len) ===> 写一个字符串的一部分

    3.使用方法

    import java.io.*;
    
    public class CharType {
        public static void main(String[] args) throws IOException {
    
            OutputStreamWriter file = new OutputStreamWriter(new FileOutputStream("F:\utf-8.txt"),"utf-8");
            file.write("这是utf-8格式的字符");
            file.flush();
            file.close();
            }
        }
    }
    
    注意:
    不指定格式时,默认使用utf-8

    二、InputStreamReader

    1.构造方法

    InputStreamReader(InputStream in)

    InputStreamReader(InputStream in, Charset cs)

    InputStreamReader(InputStream in, CharsetDecoder dec)

    InputStreamReader(InputStream in, String charsetName)

    2.常用方法

    void close() ===> 关闭流并释放与之相关联的任何系统资源

    String getEncoding() ===> 返回此流使用的字符编码的名称

    int read() ===> 读一个字符

    int read(char[] cbuf, int offset, int length) ===> 将字符读入数组的一部分

    boolean ready() ===> 告诉这个流是否准备好被读取

    3.使用方法

    import java.io.*;
    
    public class CharType {
        public static void main(String[] args) throws IOException {
    
            FileInputStream fileTemp = new FileInputStream("F:\utf-8.txt");
            InputStreamReader file = new InputStreamReader(fileTemp,"utf-8");
            int len = 0;
            while ((len = file.read()) != -1){
                System.out.print((char)len);
            }
        }
    }
    
    注意:
    不指定格式时,默认使用utf-8
  • 相关阅读:
    CentOS升级Python 2.6到2.7
    ps命令使用 进程查看
    MySQL导入sql脚本 导出数据库
    html php 重定向 跳转 刷新
    Linux查看可执行程序所在路径
    解决phpMyAdmin“登录超时 (1440 秒未活动),请重新登录”的问题
    怎样选购冲锋衣
    常见排序算法及其java实现
    java开发环境搭建
    【转】与BT下载相关的概念
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700442.html
Copyright © 2011-2022 走看看