一.IO的定义
IO即为input和output。
input:是指的往内存中读入硬盘中的数据,这一过程也叫做读入(read).
output:是指的往硬盘中写出内存中的数据,这一过程也叫做写出(write).
二.流的分类
1.按照流的方向划分分为:输入流(input)和输出流(output).
2.按照读取数据的方式分为:字节流和字符流
字节流:按照一个byte来进行读取,适用于所有文件.
字符流:按照一个字符来进行读取,适用于普通文本文件.
三.如何区分字节流与字符流
字节流都以Stream结尾,比如InputStream和OutputStream.
字符流都以Reader或者Writer结尾,比如Reader和Writer.
四.JAVA中重要的16个流
文件专属:FileInputStream,FileOutStream,FileReader和FileWriter.
转换流(字节流转换为字符流):InputStreamReader,OutputStreamReader.
缓冲流:ButferedReader,ButferedWriter,ButferedInputStream,ButferedOutputStream.
对象流:ObjectInputStream,ObjectOutput.
数据流:DateInputStream,DateOutputStream.
标准输入输出流:PrintWriter,PrintReader.
下面举一个简单的例子
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestFileInputStream {
public static void main(String[] args) {
try {
File file=new File("test.txt");
FileInputStream fis=new FileInputStream(file);
int len=0;
byte[] b=new byte[1024];
String s="";
while((len=fis.read(b))!=-1){
String str=new String(b,0,len);
s+=str;
}
fis.close();
System.out.println(s);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}