特殊操作流
- 键盘in/out
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个字符串");
String line=br.readline();
System.out.println("你输入的是:"+line);
Scanner sc=new Scanner(System.in)
字节打印流只负责输出数据,不负责读取数据
有自己的特有方法
PrintStream ps=new PrintStream(System.out);
ps.print("hello");
ps.print("100");
字节打印流操作文件
PrintStream ps=new PrintStream("D:/学习/专业/Java/java_text1.txt");
ps.write(97); //做转码操作
ps.print(97); //不做转码操作
ps.close();
字符打印流操作文件
PrintWriter ps=new PrintWriter("D:/学习/专业/Java/java_text1.txt");
ps.write("你好\r\n"); //做转码操作
ps.print("我是谭玲\r\n"); //不做转码操作
ps.close();
序列化流
将对象保存到磁盘中,或者在网络种传输对象
这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型、对象的数据和对象中存储的属性等信息
字节序列写到文件之后,相当于文件中持久保存了一个对象的信息
反之,该字节序列中还可以从文件中读取回来,重构对象,对它进行反序列化
- 对象序列化流:ObjectOutputStream
- 对象反序列化流:ObjectInputStream
对象序列化流
-构造方法
ObjectOutputStream(OutputStream out)
- 序列化对象的方法
writeObject(Object obj) - 注意
一个对象要想被序列化,该对象所属的类必须实现Serializable接口
Serializable是一个标记接口,实现该接口,不需要重写任何方法
对象反序列化流
- 构造方法
ObjectInputStream(InputStream in)
必须使用ObjectOutputStream编写的原始数据和对象 - 序列化对象的方法
readObject(Object obj)