java文件操作和文件过滤器
文件操作
java提供了File类来供我们操作文件,FIle是文件或文件夹的抽象表示,也就是对象表示。总结了几个常用的方法
- File(File parenrt,String child)、FIle(String pathname)、File(String parent,String child),三个构造函数可以多种方式实现实例化。
- getAbsolutePath():返回此文件或者文件夹的绝对路径
- getName():返回此文件夹或者文件的名称
- getPath():返回此文件夹或者文件的表示,也就是构造参数中的参数
- createNewFIle():创建一个新的文件
- mkdir():创建新目录,注意只能创建一层,
- mkdirs():创建多层目录
- isDirectory():判断是否是一个目录
- isFile():判断是否是文件
- list():返回文件或目录的名字的字符串数组
- listFiles():返回文件或目录的文件对象数组
文件过滤器:
listFiles()函数返回文件的对象列表,而有时候我们只需要其中特定的文件,比如说.txt文件,而其余的不用返回,虽然可以在返回后再操作该数组,但这样有点太复杂了,java给我们提供了俩个接口FilenameFilter和FileFilter,将此接口对象传入到listFiles的参数中,以达到过滤的目的。接口中的accept就是过滤函数,分别对获得的每一个文件调用此方法,若返回true,则放入到数组中,反之移除
FilenameFilter:
FilenameFilter过滤器,我们只能使用文件或者目录的名字,dir参数是文件所在的目前对象,并不是文件的FIle对象,所有我们一般只是使用name参数
public interface FilenameFilter {
boolean accept(File dir, String name);
}
FileFilter:
FileFilter过滤器,参数pathname即是文件的FIle对象,通过它我们可以获得文件的一切属性,比如说pathname.getName()就是文件的名字啦,可以变成间接的FIlenameFilter。功能强大
public interface FileFilter {
boolean accept(File pathname);
}
实例:
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter; /**
* 自定义的局部内部类来自定义过滤器类,
*/
public class Generics {
//自定义过滤器类实现FilenameFilter接口
static class MyFilenameFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");//只获取.java结尾的文件或目录
}
}
//自定义过滤器类实现FileFilter接口
static class MyFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".java");//只获取.java结尾的文件或目录
}
}
public static void main(String[] args) {
File file =new File("D:");
//方式一:FileFilter过滤器
File[] files=file.listFiles(new MyFileFilter());
for (File f:files){
System.out.println(f.getName());
}
//方式二:FilenameFilter过滤器
File[] files2=file.listFiles(new MyFilenameFilter());
for (File f:files2){
System.out.println(f.getName());
}
//list()函数只能接受FilenameFilter对象,匿名内部类的形式实现,
//或者可以理解为为什么既然有FileFilter,而还要FilenameFilter
// 1.对于listFiles来说,FilenameFilter可以直接操作name,而不需要通过File对象获取
// 2.对于list来说,它只能是FilenameFilter过滤器,因为得到的是String,已经不是File了
String[] filenames = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
});
for(String str:filenames){
System.out.println(str);
}
}
}
java文件操作和文件过滤器的更多相关文章
- Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录
Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...
- java 流操作对文件的分割和合并的实例详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 java 流操作对文件的分割和合并的实例详解 学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并. 下面是代 ...
- C++ 学习笔记之——文件操作和文件流
1. 文件的概念 对于用户来说,常用到的文件有两大类:程序文件和数据文件.而根据文件中数据的组织方式,则可以将文件分为 ASCII 文件和二进制文件. ASCII 文件,又称字符文件或者文本文件,它的 ...
- Python文件操作:文件的打开关闭读取写入
Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...
- Java代码操作properties文件(读取,新增/修改,删除)
项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...
- php课程---文件操作及文件上传的代码总结
php里面文件包含目录和文件两种 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 总结文件操作函数-文件夹(三)-C语言
获取.改变当前文件夹: 原型为: #include <unistd.h> //头文件 char *getcwd(char *buf, size_t size); //获取当前文件夹.相 ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- AIR文件操作:使用文件对象操作文件和目录 .
来源:http://blog.csdn.net/zdingxin/article/details/6635376 在AIR中可以方便的对本地文件操作,不过上次做了个项目,发现还是有不少不方便的地方,比 ...
随机推荐
- 基于JUnit和Ant测试程序正在运行使用Kieker(AspectJ)监测方法
这篇日志的目的从标题里能够看出来.这也是我们实验须要,必须总结一下,方便其它师弟师妹在这个基础上做实验. 我已经介绍了非常多基于Kieker的监控方法,这里以Prefuse这个开源可视化Java框架为 ...
- HDU-4432-Sum of divisors ( 2012 Asia Tianjin Regional Contest )
Sum of divisors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- wpf XMAL中隐藏控件
原文:wpf XMAL中隐藏控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9264569 ...
- python 教程 第十章、 输入/输出
第十章. 输入/输出 1) 文件 poem = '''Programming is fun use Python!''' f = file('poem.txt', 'w') # open for ...
- 基于Android开发的天气预报app(源码下载)
原文:基于Android开发的天气预报app(源码下载) 基于AndroidStudio环境开发的天气app -系统总体介绍:本天气app使用AndroidStudio这个IDE工具在Windows1 ...
- strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l, setlocale(LC_CTYPE, "Japanese_Japan")(MSDN的官方示例)
// crt_strlen.c // Determine the length of a string. For the multi-byte character // example to work ...
- 读BeautifulSoup官方文档之html树的修改
修改html树无非是对其中标签的改动, 改动标签的名字(也就是类型), 属性和标签里的内容... 先讲这边提供了很方便的方法来对其进行改动... soup = BeautifulSoup('<b ...
- facebook javascript api 使用
官方api文档:http://developers.facebook.com/docs 先简单的介绍下创建一个app(https://developers.facebook.com/apps),
- delphi文件操作(比较全)
Delphi中默认有input和output两个文件变量,使用可以不用定义,直接使用. 但: input:只读.output:只写.用时注意以免引起异常. 文件是由文件名标识的一组数据的集合,文件通常 ...
- 图像滤镜艺术---保留细节的磨皮滤镜之PS实现
原文:图像滤镜艺术---保留细节的磨皮滤镜之PS实现 目前,对于人物照片磨皮滤镜,相信大家没用过也听过吧,这个滤镜的实现方法是多种多样,有难有简,有好有差,本人经过长时间的总结,得出了一种最简单,效果 ...