计算机都是以二进制码格式存储文件的,但是在读写文件的过程中,每个应用程序都有自己的编码格式。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

最新文章

  1. 【BZOJ-1962】模型王子 DP 猜数问题
  2. Navicat for MySQL Mac 破解版
  3. RESTful和JAX-RS
  4. hdu1828(线段树+扫描线)
  5. android图片处理方法(不断收集中)
  6. [Javascrip] Logging Timing Data to the Console
  7. 让CentOS系统时间同步
  8. 学习日记之工厂方法模式和Effective C++
  9. HTML多图片压缩上传
  10. [转载]Oracle用户创建及权限设置
  11. vue中 如何使用less
  12. JProfiler的使用
  13. linux网络配置命令(二)——ip
  14. char *s 和 char s[] 的区别
  15. [转]学习笔记_springmvc注解形式的开发参数接收
  16. hdu 3864 素数分解
  17. MM 算法与 EM算法概述
  18. Qt ------ 主事件循环与 QEventLoop
  19. redis整理の安装
  20. mongoose@4.5.2的eachAsync bug

热门文章

  1. react 新创建项目
  2. 建议8:恰当选用if和switch
  3. volatile 手摸手带你解析
  4. 强连通分量SCC 2-SAT
  5. 2020kali浏览器汉化等配置
  6. zabbix笔记_008 zabbix监控交换机路由器
  7. cmdb autoserver端表数据分析
  8. Android | 教你如何用华为HMS MLKit SDK 三十分钟在安卓上开发一个微笑抓拍神器
  9. sql server 数据库安装手册
  10. Dome 多人人脸识别 face_recognition