10、java中文件的抽象表示

      java中使用File类来作为文件和目录路径名的抽象表示,是对于文件或者目录本身的属性来说的,而不是针对于文件的内容。

      一些关于File类基本操作的代码如下:

public class FileTest {
	
	/**
	 * 可用于操作文件或者目录
	 * @author chaizepeng
	 *
	 * @param args
	 */
	public static void main(String[] args) {
		
		//构造方法,获取一个File的实例,就相当于在指定路径下获取一个文件或文件夹(不管其是否存在)
		File file = new File("E://test/a/b/c.txt");

		//1、listRoots()  用于查看当前操作系统的文件系统的所有根目录
		File[] listRoots = File.listRoots();
		for (int i = 0; i < listRoots.length; i++) {
			System.out.println(listRoots[i].getPath());;
		}
		
		//2、createTempFile(String prefix, String suffix, File directory)
		//在指定的目录中创建一个新的空文件,使用给定的前缀(czp)和后缀(test.txt)字符串生成其名称
		try {
			File.createTempFile("czp", "test.txt",new File("E:"));
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//3、判断文件或文件夹是否存在
		boolean exists = file.exists();
		if (exists) {
			System.out.println("文件夹存在");
		}
		
		//4、创建一个文件
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//5、创建一个一层目录的文件夹(除根目录外)
		file.mkdir();
		
		//6、创建一个多层目录的文件夹
		file.mkdirs();
		
		//7、获取文件名
		String fileName = file.getName();
		
		//8、获取文件的全路径名
		String allFileName = file.getPath();
		
		//9、获取文件所在的父级目录名
		String parentFileName = file.getParent();
		
	}
}

接下来通过完成一个需求来演示一下关于File类的一些其他的功能,代码如下:

public class FileListTest {

	
	
	public static void main(String[] args) {
		FileListTest fileListTest = new FileListTest();
		
		//需求1:获取当前系统文件系统中所有的.xml文件
        	fileListTest.getFileEndWithXml();
		
		//需求2:获取指定目录下所有的.xml文件,这个功能常用于文件上传选择指定类型文件时
		fileListTest.getThisPathFile("指定目录");
	}

	
	public void getThisPathFile(String path) {
		File file = new File(path);
		File[] listFiles = file.listFiles(new FileFilter() {//文件过滤器
			
			@Override
			public boolean accept(File pathname) {
				return pathname.getName().endsWith(".routes");
			}
		});
		for (File file2 : listFiles) {
			System.out.println("名字都是以.routes结尾:"+file2.getName());
		}
		
	}


	/**
	 * 需求1:获取当前系统文件系统中所有的.xml文件
	 * @author chaizepeng
	 *
	 * @param file
	 */
	public void getFileEndWithXml() {
		//1、先获取文件系统中所有的根目录
		File[] listRoots = File.listRoots();
		
		for (File file : listRoots) {
			getFileEndWithXml(file);
		}
	}
	
	/**
	 * 递归获取每一个文件
	 * @author chaizepeng
	 *
	 * @param file
	 */
	private void getFileEndWithXml(File file) {
		File[] listFiles = file.listFiles();
		if (listFiles != null) {
			for (File childFile : listFiles) {
				if (childFile.isDirectory()) {//判断file是否是一个目录
					getFileEndWithXml(childFile);//是目录的话,递归遍历
				}
				if (childFile.isFile() && childFile.getName().endsWith(".xml")) {//判断file是否是文件,并且以.xml结尾
					System.out.println(childFile.getPath());
				}
			}
		}
		
		
	}
}

以上只是对File类的用法做了简单的介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值