一. 输入输出流的理解:
在 java 使用流的机制进行数据的传送,从文件到内存是输入流,从内存到文件是 输出流,输入流可以通过 read 读取,输出流以 write 或 print 写入,对于流可以是分 为高层流和低层流,低层以一个字节或字符为单位进行处理,高层流以一批数据为单位 进行处理。
FileInputStream(System.in)至 InputSteamReader 至 BufferReader
OutputSteam(System.out)至 printStream
FileReader 至 BufferedReader FileWriter 至 PrintWriter 或 bufferWriter
-
分类
-
字节(二进制)
-
FileInputStream(低层输入流)
-
FileOutputStream(低层输出流)
-
PrintStream(高层流) System.out.println()
-
字符(一个 char)
-
FileReader
-
FileWriter
1. 输入流和输出流
按照流的流向来分,可以分为输入流和输出流。输入、输出都是从程序运行所在 内存的角度来划分的。
-
输入流:只能从中读取数据,而不能向其写入数据。由InputStream和 Reader作为基类
-
输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和 Writer作为基类
- 节流和字符流
流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单 元不同。
-
字节流操作的数据单元是8位的字节,由InputStream和OutputStream作为基 类。
-
字符流操作的数据单元是16位的字符,由 Reader和 Writer作为基类
- 节点流和处理流
按照流的角色来分,可以分为节点流和处理流。
-
节点流:可以从向一个特定的IO设备(如磁盘、网络)读/写数据的流。也 被称为低级流
-
处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数 据读/写功能。也称为高级流。
流的概念:
InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流。
OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流。
读取文件。代码:
复制文件夹中的所有文件、目录,且保持目录结构不变。代码:
utputStream和Write是所有输出流的基类,它们的方法也是非常类似的,它们的方法是所有输出流都可使用的方法。代码:
OutputStream和Write是所有输出流的基类,它们的方法也是非常类似的,它们的方法是所有输出流都可使用的方法。//相比OutputStream,Writer多了append方法。代码: