1.对象操作流
该流可以将一个对象写出,或者读取一个对象到程序中,也就是执行了序列化和反序列化的操作
ObjectOutputStream--对象输出流,序列化,类似游戏存档
使用方式:new ObjectOutputStream(OutputStream)
常用方法:writeObject(Object obj)--传入的对象会自动提升为Object
注意:无论是字节输出流还是字符输出流,都不能直接写出对象。被写出的对象必须实现Serializable接口。
ObjectInputStream---对象输入流,反序列化
使用方式:new ObjectInputStream(InputStream)
常用方法:readObject(Object obj)--使用的时候需要强制转换
2.数据输入输出流
DataInputStream,DataOutputStream可以按照基本数据类型大小读写数据
例如:按照Long大小写出一个数字,写出的时候该数据占8个字节;读取的时候也是一样的,可以按照Long类型读取,一次读取8个字节
常用构造和方法
DataInputStream(InputStream); readInt();readLong()
DataOutputStream(OutputStream);writeInt();writeLong()
3.打印流
该流可以很方便的将对象的toString()结果输出,并且自动加上换行,而且可以使用自动刷出的模式
System.out就是一个PrintStream,其默认向控制台输出信息
PrintStream打印字节流演示
打印字符流
printWriter
其中相对打印字节流有个特别点---自动刷出printWriter (OutputStream out,boolean autoFlush,String encoding)
打印的方法:print();println()
自动刷出的功能只针对println()方法有效
4.标准输入输出流
System.in是InputStream,标准输入流,默认可以从键盘输入读取字节数据
System.out是OutputStream,标准输出流,默认可以向控制台中Console中输出字节和字符数据
修改标准输入输出流
修改输入流:System.setIn(InputStream is)---默认是读取键盘输入,修改后是从关联的文件中读取
修改输出流:System.setOut(PrintStream ps)--默认是向控制台打印输出,修改后是向关联的文件中写出