IO流续(Print流和对象序列化)
Print流
Print 打印流:只做输出没有输入 打印流分为字节打印流和字符打印流
PrintWriter:字符打印流
print方法可以打印各种类型数据
package day3;
import java.io.*;
import java.util.Date;
public class printWriteDemo {
/*
* Print流; 单向输出 (从服务器端 向 客户端 浏览器打印输出网页内容)
* PrintWriter:
* */
public static void main(String[] args) throws IOException {
PrintStream writer=new PrintStream("D:\\66.txt");
writer.print("s");
writer.print("ssssssssssss");
writer.print("ssssssssss");
}
}
对象输入输出流
对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化了
对象的输出流: ObjectOutputStream
对象的输入流: ObjectInputStream
要将序列化之后的对象保存下来,需要通过对象输出流(ObjectOutputStream)将对象状态保存,之后再通过对象输入流(ObjectInputStream)将对象状态恢复。
在ObjectInputStream 中用readObject()方法可以直接读取一个对象,
ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。
对象序列化
对象的寿命通常随着生成该对象的程序的终止而终止。
有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。这就引入了对象序列化的概念
对象的输出流将指定的对象写入到文件的过程,就是将对象序列化的过程,
对象的输入流将指定序列化好的文件读出来的过程,就是对象反序列化的过程。
既然对象的输出流将对象写入到文件中称之为对象的序列化,所以必须要实现Serializable接口。
Serializable接口中没有任何方法。当一个类声明实现Serializable接口后,表明该类可被序列化。
package day3;
import java.io.*;
import java.util.Date;
public class ObjectOutputDemo {
public static void main(String[] args) throws IOException {
OutputStream out=new FileOutputStream("D:\\12.txt");//对象序列化
ObjectOutputStream objput=new ObjectOutputStream(out);
Date date=new Date();
objput.writeObject(date);
objput.writeObject(new String("ajja"));
}
}