Java——特殊操作流之标准输入输出流、打印流、对象序列化流、对象反序列化流及应用
一、标准输入流
- public static final InputStream in
- 通常该流对应于键盘输入或用户指定的另一个输入源
- 自己实现键盘录入数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- Java提供了一个类实现键盘录入
Scanner sc = new Scanner(System.in);
二、标准输出流
- public static final PrintStream out
- 通过该流对应于显示输出或主机环境或用户指定的另一个输出目标
- System.out的本质是一个字节输出流
三、打印流
1、打印流分类
- 字节打印流:PrintStream
- 字符打印流:PrintWriter
2、打印流的特点
- 只负责输出数据,不负责读取数据
- 有自己的特有方法
四、字节打印流
- PrintStream(String fileName):使用指定的文件名创建新的打印流
- 使用继承父类的方法写数据,查看的时候会转码;使用自己特有方法写数据,查看的数据原样输出
mport java.io.IOException;
import java.io.PrintStream;
public class PrintStreamDemo {
public static void main(String[] args) throws IOException {
PrintStream ps = new PrintStream("IO\\psd.txt");
//使用继承父类的方法写数据,查看的时候会转码;
ps.write(97);
//使用自己特有方法写数据,查看的数据原样输出
ps.println(97);
}
}
五、字符打印流
1、构造方法
- PrintWriter(String fileName):使用指定的文件名创建一个新的PrintWriter,而不需要自动执行刷新
import java.io.IOException;
import java.io.PrintWriter;
public class PrintWriterDemo {
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter("IO\\pw.txt");
//write方法写入
pw.write("hello");
pw.write("\r\n");
pw.flush();
pw.write("world");
pw.write("\r\n");
pw.flush();
pw.write("\r\n");
pw.flush();
//println方法写入
pw.println("hello");
pw.flush();
pw.println("world");
pw.flush();
pw.println();
pw.flush();
pw.close();
}
}
- PrintWriter(Writer out,boolean autoFlush):创建一个新的PrintWriter,out是字符输出流,autoFlush是一个布尔值,如果为真,则println,printf或format方法将数显输出缓冲区
public class PrintWriterDemo2 {
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter(new FileWriter("IO\\pw.txt"), true);
pw.println("hello");
pw.println("world");
pw.close()