Java之File

总结

  1. java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
  2. File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
  3. File对象可以作为参数传递给流的构造函数
  4. 在UNIX中,此字段为‘/’,在Windows中,为‘\’
  5. File 类代表与平台无关的文件和目录。

java.io.File类

public class Test {
	public static void main(String[] args) {
		File f = new File("E:\\Learn\\4.语言\\1.Java\\day12\\test.txt");//这时f就是test.txt文件
		File f1 = new File("E:\\Learn\\4.语言\\1.Java\\day12");//这时f1是个文件夹
		System.out.println(f.getName());//文件名
		System.out.println(f1.getName());//文件夹名
		
		//相对路径
		File f2 = new File("javademo/src/com/day08/Test.java");
		System.out.println(f2.getPath());
		System.out.println(f2.getAbsolutePath());
		
		System.out.println(f2.getAbsoluteFile());//返回一个当前的文件的绝对路径构建的file对象
		System.out.println(f2.getParent());//返回当前文件或者文件夹的父级路径
		System.out.println(f2.exists());//判断文件或者文件夹是否存在
		System.out.println(f.canRead());//判断文件是否可读
		System.out.println(f.canWrite());//判断文件是否可写
		System.out.println(f.isFile());//判断file对象是否是文件
		System.out.println(f.isDirectory());//判断当前file对象是不是文件夹
		System.out.println(f.lastModified());//获取文件的最后修改时间,返回的是一个毫秒数
		System.out.println(f.length());//返回文件长度,单位字节数
	}
}

文件操作

File f3 = new File("E:\\Learn\\4.语言\\1.Java\\2019Java求知讲堂哔哩哔哩课件源代码\\day12\\test11.txt");
		System.out.println(f3.exists());
		if(!f3.exists()) {
			try {
				//创建文件
				f3.createNewFile();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
		//删除文件
		f3.delete();

目录操作

		//目录操作
		File f4 = new File("E:\\Learn\\4.语言\\1.Java\\2019Java求知讲堂哔哩哔哩课件源代码\\day12\\cc");
		f4.mkdir();//创建单级目录,如果用这种方法创建多级目录,需要一级一级的调用mkdir()
		
		File f5 = new File("E:\\Learn\\4.语言\\1.Java\\2019Java求知讲堂哔哩哔哩课件源代码\\day12\\dd\\a\\b\\c");
		f5.mkdirs();//创建多级目录
		
		//list
		File f6 = new File("E:\\Learn\\4.语言\\1.Java\\2019Java求知讲堂哔哩哔哩课件源代码\\day12");
		String[] fl = f6.list();//返回的是当前文件夹的子集的名称,包括目录和文件
		for(String ff : fl) {
			System.out.println(ff);
		}
		
		//listFiles
		File[] fll = f6.listFiles();//返回的是当前文件夹的子集的file对象,包括目录和文件
		for(File ff : fll) {
			System.out.println(ff);
		}

递归遍历文件

	/**
	 * 递归遍历文件
	 * @param file
	 */
	public void test(File file) {
		if(file.isFile()) {
			System.out.println(file.getAbsolutePath()+" 是文件");
		}else {
			System.out.println(file.getAbsolutePath()+" 是文件夹");
			//如果是文件夹,那么下面可能有文件和文件夹
			File[] fs = file.listFiles();
			if(fs!=null && fs.length>0) {
				for(File ff : fs) {
					test(ff);
				}
			}
		}
	}
	
		//调用递归遍历文件
		new Test().test(f6);
posted @ 2019-12-17 22:24  吓吾一跳  阅读(141)  评论(0编辑  收藏  举报