1.什么是IO技术?
IO技术指的是java中用来在不同设配之间实现数据传输的技术;
File[] file = f.listFiles(此处可以指定过滤器);
2.字节流:专门用来处理二进制数据(可以处理字符数据);如图片电影等
统治者:(本身不能够做事,即不能创建对象)
(1)InputStream(字节输入流)
(2)OutputStream(字节输出流)
各司其职的类:(能够做事的具有不同本领的官员,由统治者根据需求让不同官员做事,即父类引用指向子类对象,使用子类的实现方法去完成事情)
(1)操作内存的流:(作用:在内存中代替零时文件,相对于使用硬盘上的临时文件提高了性能)
ByteArrayInputStream、ByteArrayOutputStream
CharArrayReader,CharArrayWriter
(2)操作文件的流:FileInputStream、FileOutputStream
(3)操作对象的流:ObjectInputStream、ObjectOutputStream
(4)线程通信的流:PipedInputStream、PipedOutputStream
(5)合并流的流:SequenceInputStream
(6)打印各种数据的流,还可以格式化输出:PrintStream
(7)缓冲流:BufferedInputStream、BufferedOutputStream
其它:字节流读写文件都是源和目的直接交互,不会采用缓冲区,所以说字节流不需要刷新;
3.字符流:专门用来处理字符数据(不可以用来处理二进制数据)如文本
统治者:
(1)Reader(字符读取流)
(2)Writer(字符写入流)
各司其职的类:
(1)带行号的流:LineNumberReader
(2)使用平台默认字符集的文件操作流,它们是(3)的直接子类:
FileReader、FileWriter
(3)可以指定编码或者将字节流转换为字符流的流:
InputStreamReader、OutputStreamWriter
最典型的就是System.out,它是字节流InputStream的对象,对应控制台,但是控制台上面的是字符,使用字节流操作显然不方便,那么就需要转换为字符流
(4)打印各种数据的流:PrintWriter
(5)缓冲流:BufferedReader、BufferedWriter
其它:字符流读写文件为了提高效率使用了缓冲区,所以为了保证数据完全输出要在最后close资源,以刷新缓冲区并且释放资源;在不需要关闭但是需要刷新缓冲区的时候我们应该使用flush刷新缓冲区;
4.File 类:
是一个表示文件或者文件夹的类,通过它可以实现对文件或者文件夹的各种操作。
5.FilenameFilter接口:文件过滤器.
需要覆写的方法:此方法可以指定哪些文件被过滤掉;dir表示当前正在遍历的文件夹,name表示此文件夹下的文件名,如果此方法返回true,则过滤器不过滤此文件;
public boolean accept(File dir, String name) {
return name.endsWith(“’java”);
}
使用的地方:在需要列出文件时;