1、什么是io
i:Input
o:Ouput
通过io可以完成硬盘文件的读和写
2、
Java.io.InputStream 字节输入流
OutSream字节输出流
Reader 字符输入流
Writer 字符输出流
四个都是抽象类
以Stream结尾为字节流以Reader或者Writer结尾就是字符流
所有流都实现了从closeable接口
都有close方法
用完之后一定要关闭
养成好习惯用完流 一定要关闭
所有输出流都有Flushable接口
,都是可刷新的,都有flush()方法
记得在输出流输出之后,一定要flush()刷新一下,表示将流中数据清空
3、流的种类
1、InputStream类(抽象类)
2、FileInputStream类(InputStream类的子类)
3、OutputStream类(抽象类)
4、FileOutputStream类(OutputStream类的子类)
5、Reader类(抽象类)
6、InputStreamReader类(Reader类的子类)
7、FileReader类(InputStreamReader类的子类)
8、BufferedReader类(Reader类的子类)
9、Writer类(抽象类)
10、OutputStreamWriter类(Writer类的子类)
11、FileWriter类(OutputStreamWriter类的子类)
12、BufferedWriter类(Writer类的子类)
13、DataInputStream类(FilterInputStream类的子类,FilterInputStream类继承InputStream类)
14、DataOutputStream类(FilterOutputStream类的子类,FilterOutputStream类继承OutputStream类)
15、ObjectInputStream类(InputStream类的子类)
16、ObjectOutputStream类(OutputStream类的子类)
4、例
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class ObjectOutputStreamDemo03 {
public static void main(String[] args) {
//创建GirlFriend类对象
GirlFriend gf=new GirlFriend("如花",19,"女");
ObjectOutputStream oos=null;
try {
oos=new ObjectOutputStream(new FileOutputStream(""));
oos.writeObject(gf);
System.out.println("对象存储完毕");
} catch (IOException e) {
e.printStackTrace();
}finally {
if (oos == null) {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class ObjectInputStreamDemo03 {
public static void main(String[] args) {
ObjectInputStream ois=null;
try {
ois=new ObjectInputStream(new FileInputStream(""));
GirlFriend gf=(GirlFriend) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (ois == null) {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}