首页 > 学院 > 开发设计 > 正文

File类常用API介绍

2019-11-08 02:12:00
字体:
来源:转载
供稿:网友
java.io.File类用于表示文件/目录。

程序员可通过File类在硬盘上操作文件和目录。File类只能表示文件/目录的信息(如名称、大小),不能用于文件的访问。

import java.io.File;import java.io.IOException;public class FileDemo {		public static void main(String[] args) {		/*		 * 假设在F盘下有一个文件Java		 * 由于/是转义字符,所以在路径中要用双斜杠		 */		File file1=new File("F://Java");  //File类的构造函数 		/*		 * File.separator用于设置分隔符 这样任何系统都认识中间的分隔符		 */		File file11=new File("F:"+File.separator+"Java");		System.out.PRintln(file1.exists());   //判断文件/文件夹是否存在     true		System.out.println(file11.exists());  //判断文件/文件夹是否存在     true		File file2=new File("F://Java//IO//File");		if(!file2.exists()){			/*			 * 创建多级目录用mkdirs(),创建一级目录用mkdir()			 */			file2.mkdirs();//文件不存在,自动创建IO和File			//file2.mkdir();  //仅仅创建IO		}		else{			file2.delete();//如果目录存在,删除文件夹File		}						/*		 * 判断是否是一个目录		 * 如果是目录返回true,如果不是目录或者目录不存在返回false		 */		System.out.println(file1.isDirectory());  //true						/*		 * 判断是否是一个文件		 */		System.out.println(file1.isFile());  //false		File file3=new File("F://Java//IO//File//日记1.txt");		//File file33=new File("F://Java//IO//File","日记1.txt"); //功能与上面的语句相同		System.out.println(file3.isFile());  //false		if(!file3.exists())			try{				file3.createNewFile();  //自动添加异常处理			}catch(IOException e){				e.printStackTrace();			}		else			file3.delete();		System.out.println(file3.isFile());  //true				/*		 * 常用的File对象的API		 */		//直接打印file1,打印的是file1.toString()的内容		System.out.println(file1); //F:/Java		System.out.println(file1.getAbsolutePath());//功能与上面的语句相同				System.out.println(file1.getName());//打印最后的目录名      Java		System.out.println(file1.getParent());//得到父目录的路径     F:/		System.out.println(file1.getParentFile());//功能与上面的语句相同     				System.out.println(file3.getName());   //日记1.txt		System.out.println(file3.getParent()); //F:/Java/IO/File		System.out.println(file3.getParentFile());	}}
import java.io.File;import java.io.IOException;/* * 列出File类的一些常用操作 比如过滤、遍历等操作 * 假设F盘下有一个文件夹名为java,java下有一文件夹名为IO * IO下有一文件夹名为new,还有一文件名为new.txt * new下有一文件夹名为new1,还有一文件名为new1.txt */class FileUtils {	/**	 * 列出指定目录下(包括其子目录下)的所有文件	 * @param dir	 * @throws IOException	 */	public static void listDirectory(File dir)throws IOException{		if(!dir.exists()){			throw new IllegalArgumentException("目录:"+dir+"不存在.");		}		//list()方法用于列出当前目录下文件名和文件夹名		String[] filenames=dir.list();		System.out.println("目录"+dir+"下的文件名和文件夹名:");		for(String f:filenames){			System.out.println(f);  //不包含子目录下的文件名和文件夹名    		}		/*System.out.println("目录"+dir+"的子目录:");		for(String f:filenames){  			System.out.println(dir+"//"+f);   		}*/ //该注释掉的内容与下面的listFiles()方法功能相同				//listFiles()方法用于返回子目录		File[] files=dir.listFiles();  		System.out.println("目录"+dir+"的子目录:");		for(File file:files){			System.out.println(file);		}		System.out.println();		if(files!=null&&files.length>0){ //files!=null用来判断是否有子目录			for(File file:files){				if(file.isDirectory()){					//递归					System.out.println("将目录 "+file+" 传给listDirectory()进行递归:");					listDirectory(file);				}			}		}	}}public class FileUtilsTest{	public static void main(String[] args)throws IOException{		FileUtils.listDirectory(new File("F://Java"));	}}

运行结果:

目录F:/Java下的文件名和文件夹名:538685de0001832c00000000.rarIOxml字符编码目录F:/Java的子目录:F:/Java/538685de0001832c00000000.rarF:/Java/IOF:/Java/XMLF:/Java/字符编码将目录 F:/Java/IO 传给listDirectory()进行递归:目录F:/Java/IO下的文件名和文件夹名:newnew.txt目录F:/Java/IO的子目录:F:/Java/IO/newF:/Java/IO/new.txt将目录 F:/Java/IO/new 传给listDirectory()进行递归:目录F:/Java/IO/new下的文件名和文件夹名:new1new1.txt目录F:/Java/IO/new的子目录:F:/Java/IO/new/new1F:/Java/IO/new/new1.txt将目录 F:/Java/IO/new/new1 传给listDirectory()进行递归:目录F:/Java/IO/new/new1下的文件名和文件夹名:目录F:/Java/IO/new/new1的子目录:将目录 F:/Java/XML 传给listDirectory()进行递归:目录F:/Java/XML下的文件名和文件夹名:books.txtbooks.xml目录F:/Java/XML的子目录:F:/Java/XML/books.txtF:/Java/XML/books.xml将目录 F:/Java/字符编码 传给listDirectory()进行递归:目录F:/Java/字符编码下的文件名和文件夹名:目录F:/Java/字符编码的子目录:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表