IO流的简单理解
什么是IO,IO流是什么?
IO就是用于处理设备之间的数据传输,指程序与外部设备之间或其它计算机进行数据交换的过程。在java中,对数据处理的操作称之为流(Stream),包括输入流和输出流。简单来说输入流就是将硬盘中的文件读入到内存中,而输出流就是将内存中的数据写到硬盘中。
java中InputStream和Reader是所有输入流的基类,OutputStream和Writer是所有输出流的基类。
IO流的分类及常用的IO流
- 按照流的方向的可以分为:输出流(Output)、输入流(Input)。
- 按照流的处理对象可以分为:字节流(Stream)、字符流(Reader/Write)。
为什么会有两种处理对象的方式?
字节流是通过一次读取一个字节来进行操作的,字符流是对字符进行操作。字符流对于读取txt文本比字符流更加快速,所有字符流主要处理txt文本,其余的文件处理一般由字节流处理。
常用的流
处理文件的流:FileInputStream/FileOutputStream FileReader/FileWriter
自带缓冲区的流:BufferedInputStream/BufferedOutputStream BufferedReader/BufferedWriter
处理对象的流:ObjectInputStream/ObjectOutputStream
转换流:InputStreamReader/OutputStreamWriter
标准输入输出流:PrintStream/PrintWriter
处理文件的方法流程
-
确定源
File file = new File("pathname");
确定需要操作的文件
-
打开流
FileReader fr = new FileReader(file);
-
操作流
fr.read();
-
关闭流
fr.close();
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class MyFile {
public static void file() {
//确定源
File file = new File("pathname");
FileReader fr = null;
try {
//打开流
fr = new FileReader(file);
char[] ch = new char[10];
//操作流
while(fr.read(ch) != -1 ){
System.out.println(ch);
}
}catch (IOException e ){
e.printStackTrace();
}finally {
if(fr != null){
try {
//关闭流
fr.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
}
小tips
- 对于流的操作,后打开的要先行关闭。
- 打开流后,一定要将流进行关闭,不然会造成资源的浪费。
- 对于流的操作要在try——catch中执行,流的关闭也是一样。