JAVAIO流(输入流,输出流)
标签(空格分隔): 未分类java io
- 1.字节流
1).InputStream、OutputStream
InputStream抽象了应用程序读取数据的方式
OutputStream抽象了应用程序写出数据的方式
2).EOF = End读取-1,就读到了结尾
3).输入流基本方法
4)输出流基本方法
5)FileInputstream —> 具体实现了在文件上读取数据
6)FileOutputStream —> 实现向文件中写出byte数据的方法
7)DateInputStream/DateOutputStream
对“流”功能的扩展,可以更加方便的读取int, long,字符类型等的数据
8)BufferedInputStream/BufferedOutputStream
这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了性能。
从应用程序中把输入放入文件,相当于把一缸水倒到另一缸水中;
FileOutputStream —> write()方法想当与把水一滴一滴地“转移”过去
DataOutputStream —> writeXxx()放法想到于把水一瓢一瓢放入桶中,在从桶中倒入到另一个桶中。
@ 3)输入流基本方法
int b = in.read();//读取一个字节 无符号填充到int低八位.-1是EOF
in.read(byte[] buf);
in.read(byte[] buf, int start, int size);
@ 4)输出流基本方法
out.write(int b);//写出一个byte到流,b的低八位
out.write(byte[] buf)//将buf字节数组写入到流中
out.write(byte[] buf, int start, int size)
@ 7)DateOutputStream
writeInt/writeDouble/writeLong/writeUTF
- 2.字符流
- 1)编码问题
-
2)认识文本和文本文件
java的文本(char)是16位无符号整型数,是字符的unicode编码(双字节编码) 文本是byter,byte,byte…的数据序列
文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储方式。 -
3)字符流(Writer/Reader)—>操作的是文本文件
字符的处理,一次处理一个字符。
字符的底层仍然是基本的字节序列
字符流的基本实现
InputStreamReader 完成byte流解析为char流,按照编码解析
OutputStreamWriter 提供char流到byte流,按照编码处理