【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)

课程回顾:


流:数据通信的管道
常用的流类:
1、文件流:File:数据在文件中
1、FileInputStream
2、FileOutputStream
3、FileReader
4、FileWriter
2、内存流:ByteArray:数据在内存中(数组)
1、ByteArrayInputStream
2、ByteArrayOutputStream
3、缓冲流:Buffered:提高读写效率
1、BufferedInputStream
2、BufferedOutputStream
3、BufferedReader
readLine
4、BufferedWriter
newLine




今日内容:
常用的流类:
1、文件流:File:数据在文件中
1、FileInputStream
2、FileOutputStream
3、FileReader
4、FileWriter
2、内存流:ByteArray:数据在内存中(数组)
1、ByteArrayInputStream
2、ByteArrayOutputStream
3、缓冲流:Buffered:提高读写效率
1、BufferedInputStream
2、BufferedOutputStream
3、BufferedReader
readLine
4、BufferedWriter
newLine
4、转换流:用于字节流和字符流之间的转换,可以指定编码格式,处理流,字符流
1、OutputStreamWriter:转换输出字符流
输出字符流----》输出字节流
常用方法:
write:写出,字符
flush:刷新

2、InputStreamReader:转换输入字符流
输入字节流-----》输入字符流
常用方法:
read
skip
5、对象流(Object):可以将各种数据类型的数据写出(序列化)或读取(反序列化)
字节流,处理流
序列化:将对应的类的相关信息和对象的相关内容进行编码的过程,(暂态、静态的不会参与序列化)
反序列化:将序列化的内容进行解析


1、ObjectOutputStream:对象输出字节流
将数据进行序列化保存
常用方法:
writeXXX:写出不同的数据类型的数据
writeObject:写出对象
wirteUTF:写出字符串


2、ObjectInputStream:对象输入字节流
将数据进行反序列化读取
常用方法:
readXXX:读取指定类型的数据
readObject:读取一个对象
readUTF:读取字符串


对象流在使用的时候必须谨记以下两点:
1、对象流只能成对出现(使用对象输出流那么也必须使用对象输入流读取数据)
2、读写顺序必须一致(怎么写的就怎么读取)
writeInt----->readInt


对象流读取到文件末尾引发EOFException异常
当读取的字节数超过文件剩余的字节数时,都会引发EOFException异常


属性不参与序列化的方式:
1、静态的:static
静态的属性不参与序列化
2、暂态的:transient
修饰的属性不参与序列化


当将自定义类进行序列化保存的时候,对应的类必须实现Serializable(序列化接口)






6、打印流(Print):打印各种数据类型的数据,处理流
只有输出,没有输入
1、PrintStream:打印字节流
常用方法:
print:输出各种类型数据
println:输出各种类型数据,并且写出换行符
write:写出,字节
2、PrintWriter:打印字符流
常用方法:
print:输出各种类型数据
println:输出各种类型数据,并且写出换行符
write:写出,字符

三大标准(重定向):
1、标准输入流(InputSTream)
System.in:默认数据来自键盘输入
如果数据来自键盘的话,就读取不到文件的末尾,因为会阻塞的最后一次的read方法
System.setIn:重新设置标准输入的数据来源
2、标准输出流(PrintStream)
System.out:默认将数据输出到控制台
System.setOut:重新设置标准输出的位置
3、标准错误流(PrintStream)
System.err:默认将数据输出到控制台(字体红色)
System.setErr:重新设置标准错误流的位置


















7、数据流:
1、DataInputStream
2、DataOutputStream


8、随机读取文件类:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值