IO包中的其他对象

来源:互联网 发布:常微分方程 知乎 编辑:程序博客网 时间:2024/04/30 04:56

IO包中的其他对象

打印流

PrintStream:OutputStream的基础上提供了增强的功能,即可以方便的输出各种类型的数据的格式化表示形式。

构造方法:

PrintStream(File file) 
PrintStream(String fileName) 
PrintStream(OutputStream out) 
PrintStream(OutputStream out, boolean autoFlush) 

PrintStream的方法不抛IOException而是在异常的情况下设置一个内部标志,可以通过成员方法checkError()测试此标志的值以表明是否出现异常。

注意:System.out就是一个PrintStream类型的对象。

PrintWriterPrintStream的区别:

作为处理流使用时,PrintStream只能封装OutputStream类型的字节输出流。

PrintWriter既可封装OutputStream,还能够封装Writer类型字符输出流并增强其功能。

构造方法:接收四种类型的值。
1、字符串路径和File对象(对于这两种类型的数据,还可以指定编码表,也就是字符集。)
2OutputStreamWriter对于后两种类型的数据,可以指定自动刷新。注意:该自动刷新值为true时,只有三个方法可以用:printlnprintfformat.

如果既要有自动刷新,又可执行编码,就要使用到缓冲流。想要提高效率,还要使用打印方法。

DataInputStream属于处理流,它能够以一种与机器无关的方式,直接从底层字节输入流读取Java基本数据类型和String类型的数据。

writeInt(int)一次写入四个字节

而write(int)只将该整数的最低一个8位写入。剩余三个8位丢弃。

对象的序列化

对象序列化是指将对象的状态数据以字节流的形式进行处理,一般用于实现对象的持久性,即长久保持一个对象的状态并在需要时获取该对象的信息以重新构造一个状态完全相同的对象。

简单的说,对象的序列化可以理解为使用I/O“对象流”类型实现的对象读/写操作。---ObjectInputStream以及ObjectOutputStream

注意:只有实现了java.io.Serializable接口的类的对象才可以被序列化。类中的静态成员不会被序列化。

原创粉丝点击