文件过滤器
class MyFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
System.out.println(pathname);
return true;
}
}
public static void fun() {
File file = new File("这里是文件路径");
File[] listFiles = file.listFiles(new MyFileFilter());
System.out.println(listFiles.length);
for (File f : listFiles) {
System.out.println(f.getName());
}
}
通过过滤器 遍历打印文件夹的所有txt文件
过滤 .txt 文件
class MyFilterTXT implements FileFilter{
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return true;
}
return pathname.getName().endsWith("txt");
}
}
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFilterTXT());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
}else {
System.out.println(subFile.getName());
}
}
}
字节流
参照程序判断输出输入
程序 –> 文件 输出
程序 <– 文件 输入(读取)
输出与读取都是单字节进行
一个字节8个二进制位
字节输入流
读取文件的流程:
1.绑定要写入的文件
2.用write写入
3.关闭资源
public static void fun() throws FileNotFoundException, IOException {
File file = new File("文件的路径");
FileInputStream iStream = new FileInputStream(file);
int i = iStream.read();
System.out.println((char)i);
i = iStream.read();
System.out.println((char)i);
i = iStream.read();
System.out.println((char)i);
i = iStream.read();
System.out.println((char)i);
i = iStream.read();
System.out.println(i);
iStream.close();
}
循环读取:
注意! read在循环中每调用一次就读取一字节
public static void main(String[] args) throws IOException{
File file = new File("文件路径");
FileInputStream iStream = new FileInputStream(file);
int num = 0;
while ((num=iStream.read()) != -1) {
System.out.println((char)num);
}
iStream.close();
}
字节输出流
OutputStream (是输出流的父类)
构造方法:
参数 1.文件(被写入的文件)
2.文件路径(被写入的路径)
写入文件的流程:
1.绑定要写入的文件 或 文件路径
2.使用write方法写入
public static void fun1() throws FileNotFoundException, IOException {
File file = new File("文件路径");
FileOutputStream oStream = new FileOutputStream(file);
oStream.write(49);
oStream.write(48);
oStream.write(48);
byte[] b = {65,66,67,68};
oStream.write(b);
oStream.write(b, 1, 2);
oStream.write("hello".getBytes());
oStream.close();
}
}
文件的续写和换行
public static void fun() throws FileNotFoundException, IOException {
File file = new File("/Users/C/Desktop/Test/long.txt");
FileOutputStream oStream = new FileOutputStream(file, true);
oStream.write("hello\n".getBytes());
oStream.close();
}
File file = new File("/Users/C/Desktop/Test/long.txt");
FileOutputStream oStream = null;
try {
oStream = new FileOutputStream(file);
oStream.write("hello".getBytes());
} catch (FileNotFoundException e) {
throw new RuntimeException("文件找不到");
} catch (IOException e) {
throw new RuntimeException("文件编写失败");
} finally {
try {
if (oStream != null) {
oStream.close();
}
} catch (IOException e) {
throw new RuntimeException("关闭失败");
}
}