JavaSE小笔记--24(IO流初识4的一些其他流补充)

时间:2021-05-20 21:37:27

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打印字节流演示

JavaSE小笔记--24(IO流初识4的一些其他流补充)

打印字符流

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)--默认是向控制台打印输出,修改后是向关联的文件中写出