【幻化万千戏红尘】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、随机读取文件类:

 

posted on 2016-08-05 19:36  幻化万千戏红尘  阅读(132)  评论(0编辑  收藏  举报