Java高级语法笔记-文件及目录操作

java.io.File 用于表示一个文件或目录的路径名(pathname)
例如:
File f = new File("c:/example/123.txt");先判断它是否存在
if(f.exists())然后再看它是一个目录,还是一个文件
if(f.isDirectory())

else if(f.isFile())


文件属性
如果f.exists() && f.isFile() ,则可以查看文件的属性
f.canExecute() 是否可执行
f.canRead() 是否可读
f.canWrite() 是否可写
f.isHidden() 是否为隐藏文件
f.length() 文件的大小 (单位: byte)
f.lastModified() 最后修改时间 (返回毫秒值)
f.getName() 文件名 ( 例如, "abc.txt",不含路径)


文件操作
如果f.exists() && f.isFile() ,则可以执行以下操作
f.delete() 删除文件 (但不一定成功删除)
f.renameTo() 重命名 (相当于move)
f.setExecutable() 设置可执行属性
f.setReadable() 设置可读属性
f.setWritable() 设置可写属性
f.setLastModified() 更新最后修改时间


目录操作
如果d.exists() && d.isDirectory(), 则可以对此
目录执行以下操作
d.renameTo() 文件夹改名
d.delete() 删除文件夹 (但不一定能成功删除)
其他的可读、可写、可执行属性,要看文件系统本
身是否支持。。。


目录操作
设置过滤器,例如,只列出 *.mp4
FileFilter filter = new FileFilter(){
@Override
public boolean accept(File pathname)
{

if(pathname.getName().endsWith(".mp4"))

return true;

return false;


};
File[] children = d.listFiles(filter);


代码如下:

package my;

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

public class HelloWorld
{
	public static void test1() {
		File f=new File("c:/111.txt");
		if(f.exists()) {
			if(f.isDirectory()) System.out.println("是个目录!");
			else if(f.isFile()) System.out.println("是个文件!");
			else System.out.println("不存在!");
		}
		long length=f.length();
		System.out.println("文件大小为:"+length);
	}
	
	public static void test2() {
		File d=new File("E:\\迅雷下载");
		//创建过滤器
		FileFilter filter=new FileFilter() {

			@Override
			public boolean accept(File pathname)
			{
				if(pathname.getName().endsWith(".iso"))
					return true;
				return false;
			}
		};
		//列表
		File[] chidren=d.listFiles(filter);
		for(File child:chidren) {
			System.out.println("got:"+child);
		}
	}
	
	public static void test3() {
		File d1=new File("c:/example/aaa");
		File d2=new File(d1,"../bbb");
		//相对路径c:\example\aaa\..\bbb
		File a1=d2.getAbsoluteFile();
		System.out.println("a1:"+a1);
		try {
			//转换为标准路径:C:\example\bbb
			File a2=d2.getCanonicalFile();
			System.out.println("a2:"+a2);
		}catch(IOException e)
		{
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args)
	{		
		test1();
		test2();
		test3();
	}
}

运行结果如下:



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值