Java基础—IO小结(待整理)

Posted ---江北

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础—IO小结(待整理)相关的知识,希望对你有一定的参考价值。

文件分割符:Windows中使用\
推荐路径使用方式(反斜杠):D:\KuGou\123.jpg  (D:\\KuGou\\123.jpg)

io异常的处理方式:io一定要写finally;

使用流一定要记得关闭!

创建源->选择流->操作(准备容器等)->关闭 有点类似于搬家

流的本质是数据传输
一 、IO流的分类

A.根据处理数据类型的不同分为:字符流和字节流

B.根据数据流向不同分为:输入流和输出流

C.按功能分:节点流(一线的,离源最近的)和处理流

二、字节流与字符流 输入流与输出流
字符流只能处理字符数据 字节流可以处理所有数据类型
只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
输入流:读操作 输出流:写操作

三、IO流对象
字节输入流 :InputStream
字节输出流:OutputStream
字符输入流: Reader 对象FileReader
字符输出流:Writer 对象FileWriter
转换流对象 InputStreamReader:字节到字符的桥梁

OutputStreamWriter:字符到字节的桥梁(可以一个字符串一个字符串的写入数据了)
处理流:1.缓冲流(在最基本的四个对象上加上Buffered) 字节流没有新增方法 字符流存在新增方法
使用新增方法不能发生多态
2.转换流 字节流转字符流(主要功能是解决乱码问题 编码与解码 char->byte为编码),构造时
可以指定编码集合,如InputStream in = new InputStreamReader(System.in,"UTF-8");
四、常用方法
1.Reader常见方法
int read();返回读到的字符比如要显示时 (char)b, 读到流末尾返回-1
int read(char[] cbuf) 将字符读入数组 返回的是读到字符的个数
close()关闭流
2.Writer常见方法
void write(char[] cbuf) 写入字符数组到流中
flush() 刷新该流的缓冲
close()关闭流
3.FileWriter
FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。
eg:(省略异常处理部分 FileWriter fw=null try{}………………)

FileWriter fw=new FileWriter("test.txt");
fw.write("abcdefg");
fw.flush();
fw.close();


4.FileReader
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
eg: 

FileReader fr=new FileReader("test.txt"); 
int ch=0;
while((ch=fr.read())!=-1){
System.out.print((char)ch);
}
fr.close();


eg2:在前基础上使用read(char[] cbuf)
char[] buf=new char[1024];
5.作为修饰的带缓冲流
BufferedReader br=new BufferedReader(new FileReader("test.txt"));
特有方法readLine()读一行 返回读到的字符串





































以上是关于Java基础—IO小结(待整理)的主要内容,如果未能解决你的问题,请参考以下文章

Java 基础知识整理 (待整理)

[Java基础]IO流小结

知识体系小结

Java基础—IO小结缓冲流与其它流的使用

java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段