java.io.ObjectInputStream extends InputStream? 对象的反序列化流 作用:把文件中保存的对象以流的方式读取出来 构造方法: ?ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream ?参数: ?InputStream in:字节输入流 ?特有的方法: ? Object reanObject():从ObjectInputStream读对象 ? 使用步骤: ? 1.创建 ObjectInputStream对象,构造方法中传递字节输入流 ? 2.使用功能 ObjectInputStream()中 的方法readObject读取对象 ? 3.释放资源 ? 4.使用读取出来的对象打印
? .readObject()声明抛出了ClassNotFoundException(class文件找不到异常) ? 当不存在的对象的class文件时抛出此异常 ? 反序列化的前提: ? 1.类必须实现Serializable接口 ? 2.必须在类对应的class文件
package demo46对象的反序列化流;
import demo45对象的序列化流.Person;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
/*
java.io.ObjectInputStream extends InputStream 对象的反序列化流
作用:把文件中保存的对象以流的方式读取出来
构造方法:
ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream
参数:
InputStream in:字节输入流
特有的方法:
Object reanObject():从ObjectInputStream读对象
使用步骤:
1.创建 ObjectInputStream对象,构造方法中传递字节输入流
2.使用功能 ObjectInputStream()中 的方法readObject读取对象
3.释放资源
4.使用读取出来的对象打印
.readObject()声明抛出了ClassNotFoundException(class文件找不到异常)
当不存在的对象的class文件时抛出此异常
反序列化的前提:
1.类必须实现Serializable接口
2.必须在类对应的class文件
*/
public class DemoObjectInputStream {
public static void main(String[] args) throws IOException, ClassNotFoundException {
// 1.创建 ObjectInputStream对象,构造方法中传递字节输入流
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("E:\\多线程\\person.txt"));
// 2.使用功能 ObjectInputStream()中 的方法readObject读取对象
Object o=ois.readObject();
// 3.释放资源
ois.close();
// 4.使用读取出来的对象打印
System.out.println(o);
Person p=(Person)o;
System.out.println(p.getName()+p.getAge());
}
}
java.io.PrintStream:打印流 PrintStream为其他输出流添加了功能,使他们能够方便的打印各种数据表示形式 out:就是一个打印流 特点: 1.只负责数据的输出,不负责数据的读取 2.与其他输出流不同,PrintStream永远不会抛出IOException 3.有特有的方法: ? void print(任意类型值) ? void println(任意任性值并换行) 构造方法: ? PrintStream(File file):输出的目的地是一个文件 ? PrintStream(OutputStream out)输出的目的地是一个字节输出流 ? PrintStream(String filename): 输出的目的地是一个文件路径,指定文件名称
printStream extends OutputStream 继承父类的方法: 方法: close() 关闭此输出流并释放此流有关的所有系统资源 flush() 刷新次输出流并强制写出所有缓冲的输出字节 write() 有3个? 将数据写入到硬盘中 ? write(byte[] b)将b.length个字节从指定的byte数组写入此输出流 ?? write(int b)将指定的字节输出流? 写一个字节 ? write(byte[] b,int off,int len ) 将指定的字节数组写入len个字节,从偏移量off开始输出到此的输出流
? 注意:如果使用继承父类的write方法写数据,那么查看数据会查看编码表 97 ---a ?????? 如果使用自己特有的方法print/println方法写数据,写的数据原样输出?? 97---97
package demo46对象的反序列化流;
/*
java.io.PrintStream:打印流
PrintStream为其他输出流添加了功能,使他们能够方便的打印各种数据表示形式
out:就是一个打印流
特点:
1.只负责数据的输出,不负责数据的读取
2.与其他输出流不同,PrintStream永远不会抛出IOException
3.有特有的方法:
void print(任意类型值)
void println(任意任性值并换行)
构造方法:
PrintStream(File file):输出的目的地是一个文件
PrintStream(OutputStream out)输出的目的地是一个字节输出流
PrintStream(String filename): 输出的目的地是一个文件路径,指定文件名称
printStream extends OutputStream
继承父类的方法:
方法:
close() 关闭此输出流并释放此流有关的所有系统资源
flush() 刷新次输出流并强制写出所有缓冲的输出字节
write() 有3个 将数据写入到硬盘中
write(byte[] b)将b.length个字节从指定的byte数组写入此输出流
write(int b)将指定的字节输出流 写一个字节
write(byte[] b,int off,int len ) 将指定的字节数组写入len个字节,从偏移量off开始输出到此的输出流
注意:如果使用继承父类的write方法写数据,那么查看数据会查看编码表 97 ---a
如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97---97
*/
public class deno打印流 {
public static void main(String[] args) {
System.out.println("11");
//创建打印流对象
}
}
?
?
|