- 浏览: 167482 次
-
文章分类
最新评论
-
sydneytsao2:
gfs球棒gsd
Java设计模式——六大原则 -
涛涛饭:
memoryisking 写道可以看看这篇文章,构建一个简单的 ...
Java线程池使用说明 -
a492846462:
Java线程池使用说明 -
sprita1:
资源很好很强大,对楼主膜拜中.....
Java线程池使用说明 -
memoryisking:
可以看看这篇文章,构建一个简单的线程池:http://www. ...
Java线程池使用说明
现在假设我们想观看一个目录列表。可用两种方式列出File对象。若在不含自变量(参数)的情况下调用list(),会获得File对象包含的一个完整列表。然而,若想对这个列表进行某些限制,就需要使用一个“目录过滤器”,该类的作用是指出应如何选择File对象来完成显示。
下面是用于这个例子的几段代码:
package IO;
import java.io.File;
import java.io.FilenameFilter;
class ImageFilter implements FilenameFilter{
public boolean isGif(String file) {
if (file.toLowerCase().endsWith(".gif")){
return true;
}else{
return false;
}
}
public boolean isJpg(String file){
if (file.toLowerCase().endsWith(".jpg")){
return true;
}else{
return false;
}
}
public boolean isPng(String file){
if (file.toLowerCase().endsWith(".png")){
return true;
}else{
return false;
}
}
public boolean accept(File dir,String fname){
return (isGif(fname) || isJpg(fname) || isPng(fname));
}
}
public class ImageFilterTest{
public static void main(String[] args){
File directory=new File("E:\\program\\FilenameFilter\\images");
String[] images = directory.list(new ImageFilter());
System.out.println("size="+images.length);
for (int i = 0; i < images.length; i++){
String imgfile=images[i];
System.out.println("imgfile="+imgfile);
}
}
}
下例用一个匿名内部类(已在第7章讲述)来重写显得非常理想。首先创建了一个filter()方法,它返回指向FilenameFilter的一个句柄:
package IO;
import java.io.File;
import java.io.FilenameFilter;
public class ImageFilterTestInner {
public static FilenameFilter filter(final String afn){
return new FilenameFilter(){
public boolean isGif(String file){
if(file.toLowerCase().endsWith(".gif")){
return true;
}else{
return false;
}
}
public boolean isJpg(String file){
if (file.toLowerCase().endsWith(".jpg")){
return true;
}else{
return false;
}
}
public boolean isPng(String file){
if (file.toLowerCase().endsWith(".png")){
return true;
}else{
return false;
}
}
public boolean accept(File dir,String fname){
return (isGif(fname) || isJpg(fname) || isPng(fname));
}
};
}
public static void main(String[] args){
File directory=new File("E:\\program\\FilenameFilter\\images");
String[] images = directory.list(new ImageFilter());
System.out.println("size="+images.length);
for (int i = 0; i < images.length; i++){
String imgfile=images[i];
System.out.println("imgfile="+imgfile);
}
}
}
注意filter()的自变量必须是final。这一点是匿名内部类要求的,使其能使用来自本身作用域以外的一个对象。之所以认为这样做更好,是由于FilenameFilter类现在同ImageFilterTestInner 紧密地结合在一起。然而,我们可采取进一步的操作,将匿名内部类定义成list()的一个参数,使其显得更加精简。如下所示:
package IO;
import java.io.File;
import java.io.FilenameFilter;
public class ImageFilterTestInner1 {
public static void main(String[] args){
File directory=new File("E:\\program\\FilenameFilter\\images");
String[] images = directory.list(new FilenameFilter(){
public boolean accept(File dir,String fname){
return (isGif(fname) || isJpg(fname) || isPng(fname));
}
public boolean isGif(String file){
if(file.toLowerCase().endsWith(".gif")){
return true;
}else{
return false;
}
}
public boolean isJpg(String file){
if (file.toLowerCase().endsWith(".jpg")){
return true;
}else{
return false;
}
}
public boolean isPng(String file){
if (file.toLowerCase().endsWith(".png")){
return true;
}else{
return false;
}
}
});
System.out.println("size="+images.length);
for (int i = 0; i < images.length; i++){
String imgfile=images[i];
System.out.println("imgfile="+imgfile);
}
}
}
发表评论
-
设置session失效的几种方法
2013-12-12 09:30 628设置session失效的几种 ... -
Java性能基础-Java堆内存
2013-01-25 15:25 1123导读:对于程序员来说,知道堆空间,设置堆空间,处理堆空间的o ... -
Collection框架
2013-01-25 15:13 1117Collection框架 集合框架 ... -
为什么匿名内部类只能访问其所在方法中的final变量
2013-01-25 14:48 864(1).内部类是外部类的一个成员,就像外部类的成员方法一样,所 ... -
Tomcat目录及server.xml详解
2012-09-11 13:23 938本文参考自:Tomcat全 ... -
java获得项目绝对路径
2012-09-05 11:16 5239在jsp和class文件中调用的相对路径不同。在 ... -
HttpURLConnection用法详解
2012-09-03 11:35 992HttpURLConnectio ... -
Java简单问题
2012-08-14 22:56 9411.HashMap和HashTable区别 Has ... -
Java中的finalize
2012-08-02 13:14 931Java中finalize() ... -
编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
2012-08-02 11:54 2894编写一个程序,将d:\java目录下的所有.java文件复制到 ... -
问题列表
2012-07-27 17:17 3861.描述一下JVM加载class文件的原理机制? 2.试举例说 ... -
死锁是什么
2012-07-27 13:10 872在并发程序设计中,死 ... -
Java内存分配:Java堆.栈和常量池
2012-07-26 17:31 756Java堆.栈和常量池 博 ... -
BigInteger、BigDecimal详解
2012-07-26 17:22 1552BigInteger、BigDecimal详解 ... -
Java集合总结
2012-07-25 17:11 1305在Java中使用Set,可以方 ... -
String.replaceAll() 正则表达式
2012-07-19 15:46 1201最近项目中出现了一个 ... -
问题列表
2012-07-19 15:45 763问题1:list中是string,最快的排序 List li ... -
WebService基本原理
2012-07-19 10:17 741Web 服务有两层含义:1、是指封装成单个实体并发布到网络上的 ... -
重写equal 的同时为什么必须重写hashcode?
2012-07-18 17:09 1225分类: java 2011-10-21 11:33 1 ... -
web.xml
2012-07-18 08:39 783web.xml 中的listener、 filter、serv ...
相关推荐
FilenameFilter接口为Java开发者提供了一种简单而有效的方法来筛选特定目录下的文件。通过自定义实现该接口中的`accept`方法,可以根据不同的需求筛选出符合特定条件的文件列表。这在处理大量文件时尤其有用,可以...
2. **查找文件**:使用`FilenameFilter`实现对特定扩展名的文件筛选,这里我们关注.jpg、.JPG、.gif、.GIF、.png、.PNG、.jpeg和.JPEG这几种格式的图片。 3. **加载图片**:创建Image对象,使用`getWidth()`和`...
在文章中提到了几种构造函数的用法: 1. File(String pathname):通过一个路径名字符串创建File实例,例如:"c:\\abc\\1.txt"。 2. File(String parent, String child):通过父目录路径和子目录或文件名创建实例,...
线程有几种状态:新建、就绪、运行、阻塞和终止。 ##### 5. 控制线程 可以使用线程提供的方法来控制线程的行为,如start()、stop()、join()等。 ##### 6. 多线程安全问题 多线程环境下,多个线程同时访问共享...
File类的主要构造函数有以下几种: 1. `File(String path)`:根据给定的路径字符串创建File对象。 2. `File(String parent, String child)`:根据父路径和子路径创建File对象。 **二、文件的创建与删除** - `...
可以使用包装类的`toString()`方法或构造函数将基本数据类型转换为`String`。 **4. Object类** `Object`类是所有Java类的根父类,提供了`equals()`, `hashCode()`, `toString()`等方法。 **5. 代码块** 代码块用于...
查询文件夹下的文件名称,主要通过以下几种方式实现: 1. **命令行工具**: - 在Windows系统中,我们可以使用`dir`命令(或`cmd.exe /c dir`)结合通配符(如`*`或`?`)来查找匹配的文件名。例如,`dir *.txt`将列...
首先,File类提供了一些构造函数,这些构造函数可以用于创建File对象,它们有如下几种: 1. File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建一个新的File实例。 2. File(String parent, ...
写入文件则使用`BufferedWriter`,通过`write()`方法将字符串写入文件,并使用`newLine()`方法添加换行符。 对于二进制文件,如图片、音频、视频等,Java提供了`FileInputStream`和`FileOutputStream`类。这两个类...
总之,`GetFileByType`项目提供了一种有效的方法,帮助开发者在Android应用中按文件类型筛选和读取SD卡上的文件。通过熟练掌握Java的文件操作和Android的外部存储API,我们可以构建出更加健壮和用户友好的文件管理...
Java图像查看器是一种应用程序,它允许用户浏览和操作图像文件。在Java中,我们可以使用AWT(Abstract Window Toolkit)和Swing库来创建这样的程序。本实例中的图像查看器是用Java实现的,主要涉及以下几个关键知识...
主要包括以下几类: 1. **字节流**:主要涉及`InputStream`(输入字节流)和`OutputStream`(输出字节流)两大类。 2. **字符流**:主要涉及`Reader`(输入字符流)和`Writer`(输出字符流)两大类。 3. **文件操作...
// 使用异步方法加载图片,例如:AsyncTask, Picasso, Glide, Fresco 等 // 加载完成后,通过handler更新UI new AsyncTask, Void, Bitmap>() { @Override protected Bitmap doInBackground(Void... voids) { /...
创建`File`对象通常通过构造函数完成,有以下几种方式: 1. `File(String pathname)`:传入一个包含完整路径的字符串,可以是文件或目录。 2. `File(String parent, String child)`:传入父路径字符串和子文件(或...
3. 文件编码转换的方法:我们可以使用 java.io.InputStream 和 java.io.OutputStream 来实现文件编码的转换。我们可以使用 InputStreamReader 和 OutputStreamWriter 来读取和写入文件,并使用 java.nio.charset....