FileFilter
File[] listFiles(FileFilter f)
文件过滤器
File[] fileArr = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()){
return false;
}
return pathname.getName().toLowerCase().endsWith(".java");
}
});
将当前文件夹下 每一个文件都传入到方法中
我们自己写代码进行判断
如果返回true 则将当前文件 放入到数组中
如果返回false 则当前文件 不放入到数组中
如果我们想要所有.java文件 那么只要java返回true
其他文件 返回false即可
IO流
按照操作的数据不同
字节流
操作字节的流 计算机中一切数据都是以2进制存储
计算机的中基本单位就是字节 所以字节流可以操作一切数据
比如 文件 视频 音频 压缩包 ...
字节输入流
InputStream
read 读字节
FileInputStream 文件字节输入流
java.io.InputStream
所有字节输入流的超类 抽象类
方法
int read() 读一个字节 返回读取到的字节 如果没有数据 返回-1
int read(byte[] bytes) 读一个字节数组
void close() 关闭资源
byte[] bytes: 缓冲作用 用来存储读取到的数据
返回值: 每次读取的有效字节数 返回-1 代表读取到末尾
常用子类
java.io.FileInputStream
构造方法 绑定数据源
public FileInputStream(String path)
public FileInputStream(File file)
字节输出流
OutputStream
write 写字节
FileOutputStream 文件字节输出流
java.io.OutputStream
所有字节输出流的超类 抽象类1
方法
public void write(int b ) 写一个字节
public void write(byte[] bytes) 写一个字节数组
public void write(byte[] bytes,int start,int length) 写字节数组的一部分
public void close() 关闭资源 IO流对象本身并没有读写功能 而是调用操作系统的读写功能
当读写完毕后 应该告知操作系统 释放资源
常用子类
java.io.FileOutputStream
构造方法 绑定数据目的
public FileOutpputStream(String path)
public FileOutpputStream(File file)
如果没有对应文件 则创建对应文件
如果文件已经存在 则创建一个新文件 覆盖原来的文件
续写
public FileOutputStream(File file,boolean append)
OutputStream out = new FileOutputStream("d:\\work\\abc\\1.txt",true);
字符流
操作字符的流 只能操作文本文件
文本文件:用记事本打开 不乱码的文件 比如.txt .java .css .js .html
字符输入流
Reader
read 读字符
FileReader 文件字符输入流
java.io.Reader
所有字符输入流的超类 抽象类
方法
int read() 读一个字符
int read(char[] chs) 读一个字符数组
void close() 关闭资源
常用子类
java.io.FileReader
构造方法 绑定数据源
public FileReader(String path)
public FileReader(File file)
字符输出流
Writer
write 写字符
FileWriter 文件字符输出流
java.io.Writer
所有字符输出流的超类 抽象类
方法
write(int c) 写一个字符
write(char[] chs) 写一个字符数组
write(char[] chs,int start ,int length ) 写字符数组的一部分
write(String str) 写字符串
flush() 刷新缓冲区 不刷新缓冲区 数据不进入到数据目的
close() 关闭资源
常用子类
java.io.FileWriter
构造方法绑定数据目的
public FileWriter(String path);
public FileWriter(String path,boolean append);
public FileWriter(File file);
public FileWriter(File file,boolean append);
Properties
java.util.Properties
特点
1.继承自Hashtable 实现了Map接口
2.没有泛型 键是String 值String 不允许null键 null值
3.可以和IO直接结合使用
方法
String setProperty(String key ,String value)
String getProperty(Object key)
set<String> stringPropertyNames()
Properties p = new Properties();
Reader r = new FileReader("day20\\person.properties");
p.load(r);
p.close();
按照数据的流向不同
输入流
硬盘的文件 --- > Java程序
硬盘 ---> 内存
输出流
java程序 --- > 硬盘的文件
内存 ---- > 硬盘
IO流的命名规则
一般情况 前面是这个流能操作什么 能干什么
后面是这个流的顶级父类是谁 这样的好处 一眼就清楚是什么流
2.IO流重点
3.开心充实
4.BufferWriter/Reader ObjectStrem PrintWrite
本文详细介绍了Java中的FileFilter接口用于过滤文件,以及字节流和字符流的区别和使用,包括InputStream和OutputStream家族,如FileInputStream和FileOutputStream,以及Reader和Writer家族,如FileReader和FileWriter。此外,还提到了Properties类在处理配置文件时的作用,并强调了IO流的命名规则和数据流向。
661

被折叠的 条评论
为什么被折叠?



