Java课程知识梳理:
流的区分;
字符流与字节流的区别:
字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容
而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的时候,
使用了缓冲区,而在关闭字符流的时候会强制性地将缓冲区中的内容进行输出,
但是如果程序没有关闭,缓冲区的内容是无法输出的
缓冲区:
缓冲区为存放数据的特殊的内存,一个程序频繁地使用一个资源,可能造成性能会下降很低,
此时为了提升性能,就可以将一部分数据暂存到内存的一块区域中,以后直接从此区域中读取数据即可
管道流:
主要作用是可以进行两个线程间的通信,分为管道输出流(PipedOutputStream)
System类对IO的支持
System类的常量
1.public static final PrintStream out 对应系统标准输出,
2.Public static final PrintStream err 错误信息输出
流的转换:
字符流与字节流转换
转换流的特点:
(1)其是字符流和字节流之间的桥梁
(2)可对读取到的字节数据经过指定编码转换成字符
(3)可对读取到的字符数据经过指定编码转换成字节
何时使用转换流?
当字节和字符之间有转换动作时;
流操作的数据需要编码或解码时。
具体的对象体现:
OutputStreamWriter:字符到字节的桥梁
这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来
File类
File类是java.io包中唯一对文件本身进行操作的类。它可以进行创建、删除文件等操作。
File类常用操作
(1)创建文件
可以使用 createNewFille() 创建一个新文件。
注意:
Windows 中使用反斜杠表示目录的分隔符""。
Linux 中使用正斜杠表示目录的分隔符"/"。
最好的做法是使用 File.separator 静态常量,可以根据所在操作系统选取对应的分隔符。
File中给出了两种列出文件夹内容的方法:
list(): 列出全部名称,返回一个字符串数组。
listFiles(): 列出完整的路径,返回一个File对象数组。