`

黑马程序员22-2: 文件(流)操作,目录,属性,过滤器FileFilter优化与使用

 
阅读更多
------- android培训 java培训、期待与您交流!-------



constructorDemo:
package cn.itcast.io.p2.file.demo;

import java.io.File;

public class FileDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		constructorDemo();
	}

	public static void constructorDemo() {
		
		//可以将一个已存在的,或者不存在的文件或者目录封装成file对象。
		//不创建文件,只是创建文件对象而已
		File f1 = new File("c:\\a.txt");
		
		File f2 = new File("c:\\","a.txt");
		
		File f = new File("c:\\");
		
		File f3 = new File(f,"a.txt");
		//属性,跨平台
		File f4 = new File("c:"+File.separator+"abc"+File.separator+"a.txt");
		System.out.println(f1);
	}
}

FileListDemo :
package cn.itcast.io.p2.file.demo;

import java.io.File;

import cn.itcast.io.p2.filter.FilterByHidden;
import cn.itcast.io.p2.filter.SuffixFilter;

public class FileListDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		listDemo_2();
	}
	public static void listDemo_3() {
		
		File dir = new File("c:\\");
		//new使用过滤器接口,返回隐藏文件,
		File[] files = dir.listFiles(new FilterByHidden());
		
		for(File file : files){
			System.out.println(file);
		}
	}

	public static void listDemo_2() {
		
		File dir = new File("c:\\");
		////SuffixFilter返回任意传过来的扩展名,优化过滤器;FilterByJava返回指定扩展名的文件
		String[] names = dir.list(new SuffixFilter(".txt"));
		
		for(String name : names){
			System.out.println(name);
		}
		
	}



	public static void listDemo() {
		File file = new File("c:\\");
		
		/*
		 * 获取当前目录下的文件以及文件夹的名称,包含隐藏文件。
		 * 调用list方法的File对象中封装的必须是目录。
		 * 否则会发生NullPointerException
		 * 如果访问的系统级目录也会发生空指针异常。
		 * 
		 * 如果目录存在但是没有内容,会返回一个数组,但是长度为0.
		 * 
		 */
		String[] names = file.list();
		System.out.println(names.length);
		
		for(String name : names){
			System.out.println(name);
		}
	}
}


FileMethodDemo :
package cn.itcast.io.p2.file.demo;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;

public class FileMethodDemo {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
	
		/*
		 * File对象的常见方法。
		 * 
		 * 1,获取。
		 * 		1.1 获取文件名称。
		 * 		1.2 获取文件路径。
		 * 		1.3 获取文件大小。
		 * 		1.4 获取文件修改时间。
		 * 
		 * 2,创建与删除。
		 * 		
		 * 3,判断。
		 * 
		 * 4, 重命名
		 * 		
		 */
		getDemo();
//		createAndDeleteDemo();
//		isDemo();
//		renameToDemo();
		
//		listRootsDemo();
	}

	public static void listRootsDemo() {
		
		File file = new File("d:\\");
		//取空间大小
		System.out.println("getFreeSpace:"+file.getFreeSpace());
		System.out.println("getTotalSpace:"+file.getTotalSpace());
		System.out.println("getUsableSpace:"+file.getUsableSpace());
		
//		File[] files  = File.listRoots();		
//		for(File file : files){
//			System.out.println(file);
//		}
	}

	public static void renameToDemo() {
		
		File f1 = new File("c:\\9.mp3");
		
		File f2 = new File("d:\\aa.mp3");
		//剪切粘贴文件
		boolean b = f1.renameTo(f2);
		
		System.out.println("b="+b);
	}

	public static void isDemo() throws IOException{
		File f = new File("aaa");
		//创建目录
//		f.mkdir();
		//创建文件,如果文件已有存在,就不创建,不存在就创建
		f.createNewFile();
		
//		boolean b = f.exists();		
//		System.out.println("b="+b);
		// 最好先判断是否存在。 
		System.out.println(f.isFile());
		System.out.println(f.isDirectory());
		
		
	}

	public static void createAndDeleteDemo() throws IOException {
		
		File dir = new File("abc\\q\\e\\c\\z\\r\\w\\y\\f\\e\\g\\s");
		
//		boolean b = dir.mkdir();//make directory		
//		System.out.println("b="+b);
//		dir.mkdirs();//创建多级目录
		//删除目录
		System.out.println(dir.delete());
		
//		System.out.println(dir.delete());
		
		
//		文件的创建和删除。
//		File file = new File("file.txt");
		
		/*
		 * 和输出流不一样,如果文件不存在,则创建,如果文件存在,则不创建。 
		 * 
		 */
//		boolean b = file.createNewFile();		
//		System.out.println("b="+b);
		
//		boolean b = file.delete();
//		System.out.println("b="+b);
		
	}

	public static void getDemo(){
//		File file = new File("E:\\java0331\\day22e\\a.txt");
		File file = new File("a.txt");
		
		String name = file.getName();
		
		String absPath = file.getAbsolutePath();//绝对路径。
		//当前文件名(有可能含目录,即相对路径)
		String path = file.getPath();
		//文件路径长度
		long len = file.length();
		//更新时间
		long time = file.lastModified();
		
		Date date = new Date(time);
		
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
		
		String str_time = dateFormat.format(date);

		System.out.println("parent:"+file.getParent());
		
		System.out.println("name:"+name);
		System.out.println("absPath:"+absPath);
		System.out.println("path:"+path);
		System.out.println("len:"+len);
		System.out.println("time:"+time);
		System.out.println("str_time:"+str_time);
		
	}
}

FilterByHidden implements FileFilter:
package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FileFilter;

public class FilterByHidden implements FileFilter {
	
	@Override
	public boolean accept(File pathname) {
		//返回包含隐藏的文件
		return !pathname.isHidden();
	}

}


FilterByJava implements FilenameFilter:
package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FilenameFilter;

public class FilterByJava implements FilenameFilter {

	@Override
	public boolean accept(File dir, String name) {

//		System.out.println(dir+"---"+name);
		//返回所有扩展名为.txt的文件
		return name.endsWith(".txt");
	}

}


SuffixFilter implements FilenameFilter :
package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FilenameFilter;

public class SuffixFilter implements FilenameFilter {

	private String suffix ;
	public SuffixFilter(String suffix) {
		super();
		this.suffix = suffix;
	}
	//返回任意传过来的扩展名,优化过滤器
	@Override
	public boolean accept(File dir, String name) {

		return name.endsWith(suffix);
	}

}



------- android培训 java培训、期待与您交流!-------


详细请查看:http://edu.csdn.net/heima -------
分享到:
评论

相关推荐

    FileFilter-文件隐藏.rar

    标题中的“FileFilter-文件隐藏.rar”提示我们这是一个关于文件隐藏技术的压缩包,而关键词“minifilter”和“Windows内核”则表明这种隐藏是通过Windows操作系统内核的过滤驱动来实现的。让我们深入了解一下这个...

    文件内容检索工具 filefilter_Trial-limit100.zip

    Filefilter 简介:本版本为最新试用版,文件限制个数为100,增加了结果排序功能、忽略大小写模糊查找功能,使用此工具可以根据输入的关键词(以逗号分开),在word文档中匹配筛选关键词,并给出关键词匹配查找到的...

    java文件阅读器-文件的流的操作

    在Java编程语言中,文件...以上就是Java文件阅读器涉及的主要知识点,通过这些工具和方法,你可以高效地管理和操作文件系统资源。在实际项目中,根据需求选择合适的API和模式,能够有效地实现文件的读写、管理和转换。

    文件内容检索工具 filefilter 1.0

    FileFilter简介:使用此工具可以根据输入的关键词(以逗号分开),在word文档中匹配筛选关键词,并给出关键词匹配查找到的个数,根据目标关键词的匹配情况将根据分捡条件自动将简历分捡到不同的目录中,方便使用。...

    java 文件操作

    这个类是文件和目录路径名的抽象表示,它提供了许多与文件和目录相关的操作方法。 1. **文件对象的创建**: - 使用`new File(String path)`构造函数创建一个File对象,`path`参数为文件或目录的路径。 - 例如:`...

    FileFilter

    结合`FileFilter`,它可以提供保存Word格式的功能,这意味着我们可以创建一个过滤器来仅显示`.doc`或`.docx`文件,并且可能包含额外的函数来执行这些文档的保存操作。 下面是一个简单的`MyFileFilter`类的示例,...

    小程序------FilenameFilter 接口 过滤指定类型的文件

    此外,`FilenameFilter`还可以与其他Java I/O类结合使用,例如`FileInputStream`或`FileOutputStream`,在读写文件时进行过滤。这样,你可以在打开文件之前就确保它们是符合条件的。 总结来说,`FilenameFilter`...

    FileUtil(文件操作工具类)

    - `listFilesWithFilter()`: 使用FileFilter或FilenameFilter过滤特定类型的文件。 5. **文件复制与移动**: - `copyFile()`: 复制一个文件到另一个位置,确保文件完整无损地迁移。 - `moveFile()`: 移动文件,...

    java核心编程之文件过滤类FileFilter和FilenameFilter

    例如,我们可以使用 FileFilter 来过滤某个目录下的所有文件,然后使用 FilenameFilter 来过滤文件名,找到符合条件的文件。 优点 使用 FileFilter 和 FilenameFilter 有很多优点,例如: * 可以实现文件的过滤、...

    基于struts2的文件上传+过滤器

    本篇文章将详细介绍如何在Struts2中实现文件上传功能以及使用过滤器进行文件类型的过滤。 首先,理解Struts2文件上传的基本原理。Struts2提供了`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器来...

    Java 文件过滤器

    在Java中,我们可以使用`java.io.FileFilter`接口来创建自定义的文件过滤器。这个接口只有一个方法:`boolean accept(File file)`。当你实现这个接口时,你需要在`accept()`方法中定义你的过滤规则。如果`accept()`...

    Java 实例 - 遍历指定目录下的所有目录源代码-详细教程.zip

    在Java编程中,遍历指定目录下的所有子目录是一项常见的任务,这在处理文件系统操作时非常有用。这个实例教程将向我们展示如何通过Java API实现这一功能。在这个"Java 实例 - 遍历指定目录下的所有目录源代码-详细...

    java中如何使用过滤器过滤指定格式的文件

    在处理文件时,我们可以利用过滤器来选取符合特定格式的文件,例如只选择`.txt`文本文件而忽略其他类型的文件,或者排除目录。在本场景下,我们需要实现一个过滤器来过滤掉目录文件和非`.txt`文件。 首先,让我们...

    commons-io-2.6.jar下载

    这个版本的 JAR 文件包含了丰富的输入/输出流、文件操作、I/O 流工具类以及与文件系统交互的相关功能。下面将详细介绍 `commons-io-2.6.jar` 中的关键知识点。 1. **基本文件操作**: - `FileUtils` 类提供了大量...

    java文件操作.docx

    例如,`File` 类是 Java 中用来表示文件和目录路径名的抽象类,提供了许多静态和非静态的方法来操作文件。 实验内容分为三个部分: 1. 编写试题显示程序。这个程序需要读取试题文件 `test.dat`,文件格式为一系列...

    manejo-de-archivos-en-java:Java 中的文件处理示例。 允许通过 JFileChooser 打开、保存文件

    4. **文件流**: - **输入流(InputStream)**:用于读取数据,如`FileInputStream`。 - **输出流(OutputStream)**:用于写入数据,如`FileOutputStream`。 - **缓冲流(Buffered Stream)**:提高I/O性能,如`...

    commons-io-2.CHM

    apache commons-io-2.CHM帮助文档 一、FileUtils 打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下: cleanDirectory:清空目录,但不删除目录。 contentEquals:比较两个...

    图片浏览器.doc

    - **定义与作用**:文件过滤器(MyFileFilter)是FileFilter接口的实现,用于筛选文件对话框中显示的文件类型。它通过重写`accept`方法来决定哪些文件可以被显示。 - `accept(File f)`:判断文件是否属于图片类型。 ...

    Find-File-Native-Java-Project:查找文件本机 Java 项目

    项目可能使用了`java.io.File`类来代表和操作文件或目录,以及`java.nio.file`包中的类,如`Files`和`Paths`,它们提供了更现代且高效的文件操作方法。 2. **递归遍历**:为了在整个文件系统中查找文件,项目可能...

    linux下的文件过滤驱动

    在Linux操作系统中,文件过滤驱动是一种特殊的内核模块,它允许对文件系统操作进行拦截、修改或监控。这种驱动程序通常被用在安全软件、审计系统或者需要对文件访问进行特殊控制的应用中。本文将详细讲解Linux文件...

Global site tag (gtag.js) - Google Analytics