黑马程序员技术交流社区
标题:
黑马程序员_IO流的总结
[打印本页]
作者:
b277967086
时间:
2015-4-19 18:39
标题:
黑马程序员_IO流的总结
几种IO流的区别:
字节流(可以传File和String类)
FileInputStream
FileOutputStream
字符转换流(实现字节流到字符流的转换,只能传字节流)
InputStreamReader
OutputStreamWriter
字符流(可以传字节流和String类)
FileReader
FlieWriter
字符流涉及到编码的问题
字符流=字节流+编码(GBK2312等)
字符串中的编码问题
编码
String -- byte[]
解码
byte[] -- String
IO流中的编码问题
A:OutputStreamWriter
OutputStreamWriter(OutputStream os):默认编码,GBK
OutputStreamWriter(OutputStream os,String charsetName):指定编码。
1:字符流(掌握)
(1)字节流操作中文数据不是特别的方便,所以就出现了转换流。
转换流的作用就是把字节流转换字符流来使用。
(2)转换流其实是一个字符流
字符流 = 字节流 + 编码表
(3)编码表
A:就是由字符和对应的数值组成的一张表
B:常见的编码表
ASCII
ISO-8859-1
GB2312
GBK
GB18030
UTF-8
C:字符串中的编码问题
编码
String -- byte[]
解码
byte[] -- String
(4)IO流中的编码问题
A:OutputStreamWriter
OutputStreamWriter(OutputStream os):默认编码,GBK
OutputStreamWriter(OutputStream os,String charsetName):指定编码。
B:InputStreamReader
InputStreamReader(InputStream is):默认编码,GBK
InputStreamReader(InputStream is,String charsetName):指定编码
C:编码问题其实很简单
编码只要一致即可
(5)字符流
Reader
|--InputStreamReader
|--FileReader
|--BufferedReader
Writer
|--OutputStreamWriter
|--FileWriter
|--BufferedWriter
2:IO流小结
IO流
|--字节流
|--字节输入流
InputStream
int read():一次读取一个字节
int read(byte[] bys):一次读取一个字节数组
|--FileInputStream
|--BufferedInputStream
|--字节输出流
OutputStream
void write(int by):一次写一个字节
void write(byte[] bys,int index,int len):一次写一个字节数组的一部分
|--FileOutputStream
|--BufferedOutputStream
|--字符流
|--字符输入流
Reader
int read():一次读取一个字符
int read(char[] chs):一次读取一个字符数组
|--InputStreamReader
|--FileReader
|--BufferedReader
String readLine():一次读取一个字符串
|--字符输出流
Writer
void write(int ch):一次写一个字符
void write(char[] chs,int index,int len):一次写一个字符数组的一部分
|--OutputStreamWriter
|--FileWriter
|--BufferedWriter
void newLine():写一个换行符
void write(String line):一次写一个字符串
flush():刷新流对象的缓存区,不然该对象的Write()方法数据还没写进去
close():也有刷新的作用,有区别。flush()以后该流对象还能使用,而close()就不能。
其实字节流到字符流中间有一个转换流InputStreamWriter
BufferReader/BufferWriter是字符缓存流,提供了缓存池,就不用一次一次的读写,提高效率。虽然都是提高效率,但是和
char[] chs=new char[1024];
int len=0;
while(len=br.read(chs)!=-1){
bw.write(chs,0,len)
}
这种方式的思路不同,但是效果是都能提高效率。这种方式是read和write方法提供的输入输出方式。
作者:
b277967086
时间:
2015-4-19 18:41
哎呦 多多指教
作者:
知来者之可追
时间:
2015-4-19 19:01
学习,学习
作者:
有无相生
时间:
2015-4-19 23:22
正学到这里呢
作者:
黑马小符
时间:
2015-4-19 23:55
谢谢,分享了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2