标准输入输出流:
public static final InputStream in:字节输入流
用来读取键盘录入的对象
InputStream in = System.in;
public static final OutputStream out:字节输出流
用来将数据输出到命令行
OutputStream out = System.out;
需求:读取项目根目录下的SystemInOutDemo.java,并输出到命令行
数据源:项目根目录下的SystemInOutDemo.java BufferedReader
目的地:命令行 System.out
由于标准输出流是一个字节输出流,所以只能输出字节或者字节数组,但是我们读到的是数据是
字符串,如果想进行输出还需要转换成字节数组,我们要想通过标准输出流输出字符串,把
标准输出流转换成一种字符输出流即可,OutputStreamWriter
需求:读取键盘录入的数据,并输出到项目根目录下的a.txt文件中
数据源:读取键盘录入的数据 System.in
目的地:项目根目录下的a.txt FileWriter
转换流:需要把字节输入流转换成字符输入流,InputStreamReader
以上学习了两种转换流:
将字节输入流转换成字符输入流
InputStreamReader()
将字节输出流转换成字符输出流
OutputStreamWriter()
打印流
PrintStream
PrintWriter
可以自动换行,println()
不能输出字节,但是可以输出任何其他类型
通过某些配置,才能实现自动刷新(只有调用println,print或format有用)
也是包装流,不具备写出功能。
可以把字节输出流转换成字符输出流
注意:只能输出不能输入
打印流的特有功能:
自动换行
使用方法println()实现换行
自动刷新
创建printWriter对象是启动自动刷新开关,并且使用println等3个方法即可
注意:创建FIleWriter对象是boolean参数是是否追加,
而创建打印流对象的boolean类型参数是是否自动刷新
使用打印流复制文本文件
数据流:SystemInOutputDemo.java BufferedReader
目的地:d:\\SystemInOutDemo.java PrintWriter
对象操作流:
可以用于读写任意类型的对象
ObjectOutputStream:
writeObject:
ObjectOutputStream(OutputStream out)
ObjectInputStream:
readObject:
ObjectInputStream(InputStream in)
注意:
使用对象输出流写出对象,只能使用对象输入流来读取对象
只能将支持java.io.Serializable接口的对象写入流中 |
|