Java IO(Input/Output)----File

Java.IO包

1.File类:代表文件、文件夹

用于表示文件或目录;只用于表示文件或目录的信息(名称、大小等),不能对文件的内容进行访问

----查看文件或目录属性

--------相对目录:Java虚拟机启动目录,Eclipse中默认相对路径是当前项目文件夹。

/*
		 * 文件夹
		 */
		File directory=new File("bin");//相对路径
		System.out.println(directory.getAbsolutePath());//打印文件的绝对路径
		System.out.println(directory.isDirectory());//打印bin是否为目录
		System.out.println(directory.canRead());//打印bin是否为目录
		long time=directory.lastModified();//最后修改的时间
		Date date=new Date(time);
		Format format=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//HH:24小时时间格式 MM:月 mm:分
		System.out.println(format.format(date));//输出最后修改时间
		/*
		 * 文件
		 */
		File file=new File("src\\FileDemo/FileDemo.java");// "/"反正都行,但"\"需要转义,即"\\"
		System.out.println(file.isDirectory());//是否为问文件夹
		System.out.println(file.isFile());//是否为文件
		System.out.println(file.isAbsolute());//是否为绝对路径
		System.out.println(file.length());//文件大小,已Byte为单位
		System.out.println(file.canExecute());//是否可执行
		System.out.println(file.canRead());//是否可读
		System.out.println(file.canRead());//是否可写
		System.out.println(file.getAbsolutePath());//打印绝对路径
		System.out.println(file.exists());//文件是否存在
		System.out.println(file.getName());//文件名
		System.out.println(file.getParent());//父目录
		System.out.println(file.getPath());//文件路径
		System.out.println(file.lastModified());//最后修改时间
		System.out.println(file.getClass());//类名

----创建文件或目录

/*
		 * 创建目录
		 */
		File newFile=new File("demo");
		if(!newFile.exists())//文件是否存在
		{
			newFile.createNewFile();//不存在,创建文件
			//newFile.mkdir();//创建文件夹
		}
		System.out.println(newFile.exists());
		File reName=new File("demoto");
		newFile.renameTo(reName);//文件重命名为demoto
		newFile.delete();//文件删除,但不能删除重命名后的文件
		reName.delete();//删除重命名后的文件

----访问文件系统(目录)

	/*
		 * 访问文件系统
		 */
		File work=new File("./src/FileDemo");//当前目录
		String[] list =work.list();//类似于ls,获取当前路径所有的文件及文件夹,保存在list中
		System.out.println(work.getAbsoluteFile());
		System.out.println(Arrays.toString(list));//输出当前路径所有的文件及文件夹
		
		list=work.list(new filter());//过滤掉除。java文件名之外的文件
		System.out.println(Arrays.toString(list));
		
		list=work.list(new FilenameFilter() {			
			@Override
			public boolean accept(File dir, String name) {
				return name.endsWith(".java");//返回以。java结尾的文件
			}
		});
		System.out.println(Arrays.toString(list));
		
		String str=".java";
		list=work.list(new filter(str));//过滤掉除。java文件名之外的文件
		System.out.println(Arrays.toString(list));
class filter implements FilenameFilter{//文件名过滤器
	String str=".java";
	public filter() {
	}
	public filter(String str) {
		this.str=str;
	}
	@Override
	public boolean accept(File dir, String name) {
		return name.endsWith(str);//返回以。java结尾的文件
		
	}
	
}
递归查找当前目录及子目录java文件
package ListAllDemo;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

public class ListAllDemo {

	public static void main(String[] args) {
		File file=new File("./src/FileDemo");
		GetList(file, ".java");
	}
	public static void GetList(File src,String str){
		//显示当前目录所有文件
		ListFile(src,str);
		//递归获得当前子目录,遍历子目录,列出每个子目录的文件
		File[] list=src.listFiles();
		for (int i = 0; i < list.length; i++) {
			File d=list[i];
			if(d.isDirectory()){
				ListFile(d, str);
			}
		}
		
		
	}
	private static void ListFile(File src,String str) {
		File[] list=src.listFiles(new filter(str));
		System.out.println(Arrays.toString(list));
	}
}
class filter implements FilenameFilter{//文件名过滤器
	String str=".java";
	public filter() {
	}
	public filter(String str) {
		this.str=str;
	}
	@Override
	public boolean accept(File dir, String name) {
		return name.endsWith(str);//返回以。java结尾的文件
		
	}
	
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值