博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符流
阅读量:4686 次
发布时间:2019-06-09

本文共 1192 字,大约阅读时间需要 3 分钟。

字符流是可以直接读写字符的IO流

 


组成: 字节流 + 编码表

** 常见的编码表: ASCII , GBK , UTF-8

** 字符输入流 Reader

** 字符输出流 Writer

 


InputStreamReader(转换输入流)

* 构造方法:

public InputStreamReader(InputStream in)

public InputStreamReader(InputStream in , String charsetName)

* 成员方法:

public int read() ;

public int read(char[] chs) ;

** OutputStreamWriter(转换输出流)

* 构造方法:

public OutputStreamWriter(OutputStream out)

public OutputStreamWriter(OutputStream out , String charsetName)

* 成员方法:

public void write(int ch) ;

public void write(char[] chs) ;

public void write(char[] chs , int off , int len) ;

public void write(String s) ;

public void write(String s , int off , int len) ;

** FileReader

** FileWriter

 


高效的字符输入流 BufferedReader

* 构造方法: public BufferedReader(Reader r)

* 特有的功能: public String readLine() ;

 


高效的字符输出流 BufferedWriter

* 构造方法: public BufferedWriter(Writer w) ;

* 特有的功能: public void newLine() ;

 


什么情况下使用字符流

* 字符流也可以拷贝文本文件, 但不推荐使用. 因为读取时会把字节转为字符, 写出时还要把字符转回字节.

* 程序需要读取一段文本, 或者需要写出一段文本的时候可以使用字符流

* 读取的时候是按照字符的大小读取的,不会出现半个中文

* 写出的时候可以直接将字符串写出,不用转换为字节数组

 

 


字符流是否可以拷贝非纯文本的文件

* 不可以拷贝非纯文本的文件

* 因为在读的时候会将字节转换为字符,在转换过程中,可能找不到对应的字符,就会用?代替,写出的时候会将字符转换成字节写出去

* 如果是?,直接写出,这样写出之后的文件就乱了,看不了了

转载于:https://www.cnblogs.com/loaderman/p/6407668.html

你可能感兴趣的文章
WampServer下修改和重置MySQL密码
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
Part2_lesson3---ARM寄存器详解
查看>>
深入理解vsto,开发word插件的利器
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
python——网络编程
查看>>
Spark的39个机器学习库
查看>>
Electron学习笔记(一)
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>
VS2005编译VTK5.10.1
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
总结上海永辉云商高级前端职位面试题集
查看>>
中国计算机学会推荐国际学术会议和期刊目录
查看>>
各种可以远程
查看>>
分治法实现1-N的数字按字典序全排列组合 Java语言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>