ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

File类

2020-12-12 23:02:43  阅读:162  来源: 互联网

标签:day26 System File println public out


File类

 概述

java.io.File类是文件和目录路径名的抽象表示。主要用于文件和目录的创建、查找、删除等操作。

Java把电脑中的文件和文件夹(目录)封装为了一个File类, 我们可以使用File类对文件和文件夹进行操作。

可以使用Flle类的方法:

  • 创建一个文件、 文件夹

  • 删除个文件、 文件夹

  • 获取一个文件、文件夹

  • 判断文件、文件夹是否存在

  • 对文件夹进行遍历

  • 获取文件的大小

File类毕一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。

构造方法

  • public File(String pathname): 通过将给定路径名字符串转换为抽象路径名来创建一个新File 实例。

  • public File(String pathname String child): 根据parent路径名字符串和child路径名字符串创建一个新File 实例。

  • public File(File parent,String child):根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

常用API方法

  • 获取功能的方法

  • 判断功能的方法

  • 径功能的方法

  • 创建删除功能的方法

  • 目录遍历功能的方法

  • 获取功能的方法

  • public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。

  • public String getPath():将此File转换为路径名字符串

  • public String getName():返回由此抽象路径名表示的文件或目录的名称。

  • public long length():返回此File表示的文件的长度。

public class Demo03File {

	public static void main(String[] args) {
//		show01();
//		show02();
//		show03();
		show04();
	}
	
	/*
	 * public long length():返回此File表示的文件的长度。
	 * 获取的是构造方法中指定的文件的大小,以字节为单位
	 * 注意:
	 *    文件夹是没有大小概念的,不能获取文件夹的大小
	 *    如果构造方法中给出的路径不存在,那么length()方法的返回值是0
	 */
	public static void show04() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		long length = f1.length();
		System.out.println(length);// 232 字节
		
		// 11,346 字节
		File f2 = new File("E:\\documents\\Java运算符优先级.png");
		long length2 = f2.length();
		System.out.println(length2);// 11346
		
		File f3 = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		long length3 = f3.length();
		System.out.println(length3);// 0
		
		File f4 = new File("E:\\codes\\workspace\\day26_Lambda");
		long length4 = f4.length();
		System.out.println(length4);// 0
	}
	
	/*
	 * public String getName():返回由此File表示的文件或目录的名称。
	 * 获取的是构造方法中传递路径的结尾部分(文件还是文件夹)
	 * 
	 */
	public static void show03() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		String name = f1.getName();
		System.out.println(name);// .classpath
		
		File f2 = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		String name2 = f2.getName();
		System.out.println(name2);// day26_LambdaAndFile
		
	}
	
	/*
	 * public String getPath():将此File转换为路径名字符串
	 * 获取构造方法中传递的路径
	 * 
	 * 	源码当中:toString方法
		  public String toString() {
        		return getPath();
    	   }
	 */
	public static void show02() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		String path = f1.getPath();
		System.out.println(path);// E:\codes\workspace\day26_LambdaAndFile\.classpath
		File f2 = new File(".classpath");
		String path2 = f2.getPath();
		System.out.println(path2);// .classpath
	}
	
	/*
	 * public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。
	 * 获取的是构造方法里面传递的路径
	 * 无论路径是绝对路径还是相对路径,getAbsolutePath返回的都是绝对路径
	 * 
	 */
	public static void show01() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		String absolutePath = f1.getAbsolutePath();
		System.out.println(absolutePath);// E:\codes\workspace\day26_LambdaAndFile\.classpath
		
		File f2 = new File(".classpath");
		String absolutePath2 = f2.getAbsolutePath();
		System.out.println(absolutePath2);// E:\codes\workspace\day26_LambdaAndFile\.classpath
		
		File file = new File("day26_LambdaAnd");
		String absolutePath3 = file.getAbsolutePath();
		System.out.println(absolutePath3);// E:\codes\workspace\day26_LambdaAndFile\day26_LambdaAnd
	}
}

判断功能的方法

  • public boolean exists():判断File表示的文件或者文件夹是否实际存在

  • public boolean isDirectory0:判断此File表示的文件夹是否存在

  • public boolean isFile():判断此File表示的文件是否存在

public class Demo04File {

	public static void main(String[] args) {
//		show01();
		show02();
	}
	
	/*
	 * public boolean isDirectory():判断此File表示的文件夹是否存在
	 *   用于判断构造方法中给定的路径是否以文件夹结尾
	 *   	是:true
	 *      不是:false
	 * 
	 * public boolean isFile():判断此File表示的文件是否存在
	 *   用于判断构造方法中给定的路径是否以文件结尾
	 *     是:true
	 *     不是:false
	 * 
	 * 注意:
	 *    电脑的硬盘中只有文件和文件夹,两个方法时互斥的
	 *    这两个方法使用的前提是:路径必须是存在的,否则都返回false
	 * 
	 */
	public static void show02() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		System.out.println(f1.isDirectory());// false
		System.out.println(f1.isFile());// true
		
		File f2 = new File("E:\\codes\\workspace\\day26_Lambda");
		
		if (f2.exists()) {
			System.out.println(f2.isDirectory());// false
			System.out.println(f2.isFile());// false
		}
		
		File f3 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.project");
		if (f3.exists()) {
			System.out.println(f3.isDirectory());//false
			System.out.println(f3.isFile());//true
		}
	}
	
	/*
	 * public boolean exists():判断File表示的文件或者文件夹是否实际存在
	 * 用于判断构造方法中的路径是否存在
	 *    存在:true
	 *    不存在:false
	 */
	public static void show01() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		System.out.println(f1.exists());// true
		
		File f2 = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		System.out.println(f2.exists());// true

		File f3 = new File("E:\\codes\\workspace\\day26_Lambda");
		System.out.println(f3.exists());// false
		
		File f4 = new File(".classpath");// 相对路径-->E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath
		System.out.println(f4.exists());// true
		
		File f5 = new File("123.txt");
		System.out.println(f5.exists());//false
		
		File f6 = new File("css样式简单介绍.md");
		System.out.println(f6.exists());// false

	}	
}

创建和删除文件的方法

  • public boolean createNewFile():当且仅当具有该名称的文件不存在时,创建个新的空的文件,返回值是true

  • public boolean delete():删除由此File表示的文件或者目录

  • public boolean mkdir():创建由此File表示的文件夹

  • public boolkan mkdir():创建由此File表示的文件夹,包括任何必须但是又不存在的父目录。

public class Demo05File {

	public static void main(String[] args) throws IOException {
		
//		show01();
//		show02();
		show03();
	}
	
	/*
	 * public boolean delete():删除由此File表示的文件或者目录
	 * 此方法,可以删除构造方法路径中给出的文件或者文件夹
	 * 返回值:布尔值
	 *     true:文件、文件夹删除成功,返回true
	 *     false:如果文件夹中有内容,不会删除返回false;构造方法中不存在的路径返回的是false
	 *     
	 * 注意:
	 *     delete方法时直接从磁盘删除文件/文件夹,不经过回收站。    
	 *     文件夹中有内容不能删除,但是文件中有内容不影响删除
	 *     删除的路径可以是相对路径也可以是绝对路径,
	 *     如果是相对路径,则查看当前项目的根目录是否有该文件或者文件夹,
	 *     如果有且内容为空删除,如果没有返回false,删除失败。
	 */
	public static void show03() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\aa");
		boolean b1 = f1.delete();
		System.out.println(b1);
		
		File f2 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\file");
		boolean b2 = f2.delete();
		System.out.println(b2);
		
		File f3 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\新建文件夹");
		boolean b3 = f3.delete();
		System.out.println(b3);
		
		File f4 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\abc.txt");
		boolean b4 = f4.delete();
		System.out.println(b4);
		
		File f5 = new File("day26_Lambda");
		boolean b5 = f5.delete();
		System.out.println(b5);	
	}
	
	/*
	 * public boolean mkdir():创建由此File表示的文件夹
	 *                         ---》创建单级空文件夹
	   public boolean mkdirs():创建由此File表示的文件夹,包括任何必须但是又不存在的父目录。
	                            ---》既可以创建单级空文件夹,也可以创建多级孔文件夹
	 * 
	 * 注意:
	 *     此方法只能创建文件夹,不能创建文件
	 *     路径不对也不会抛出异常,可以使用相对路径也可以使用绝对路径
	 */
	public static void show02() {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		boolean b1 = f1.mkdir();
		System.out.println(b1);// false
		
		File f2 = new File("E:\\codes\\workspace\\day26_Lambda");
		boolean b2 = f2.mkdir();
		System.out.println(b2);// true
		
		File f3 = new File("E:\\codes\\workspaces\\day26_Lambda");
		boolean b3 = f3.mkdir();
		System.out.println(b3);//false
		
		File f4 = new File("bin");
		boolean b4 = f4.mkdir();
		System.out.println(b4);//false
		
		File f5 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\aa\\bb\\cc\\dd");
		boolean b5 = f5.mkdirs();
		System.out.println(b5);//true
		
		File f6 = new File("file\\aa\\bb\\cc\\dd");
		boolean b6 = f6.mkdirs();
		System.out.println(b6);//true	
	}
	
	/*
	 * public boolean createNewFile():当且仅当具有该名称的文件不存在时,创建一个新的空的文件,返回值是true
	 * 创建文件的路径和名称在构造方法中声明
	 * 返回值:
	 *     布尔值
	 *     true:文件不存在,创建了空文件,返回为true
	 *     false:文件存在,不会创建,返回false
	 * 注意:
	 *     1. 此方法不能创建文件夹,只能创建文件
	 *     2. 创建文件的路径必须存在,否则就抛出异常。
	 * 该方法携带有IOException
	 */
	public static void show01() throws IOException {
		File f1 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\.classpath");
		boolean b1 = f1.createNewFile();
		System.out.println(b1);// false

		File f2 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\abc.txt");
		boolean b2 = f2.createNewFile();
		System.out.println(b2);// true

		File f3 = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\新建文件夹");
		boolean b3 = f3.createNewFile();
		System.out.println(b3);// true
		
		File f4 = new File("E:\\codes\\workspace\\day26_Lambda\\123.txt");
		boolean b4 = f4.createNewFile();
		System.out.println(b4);// java.io.IOException: 系统找不到指定的路径。	
	}	
}

目录的遍历

  • public String[] list():返回一个String数组,表示该File目录中的所有的子目录或者子文件。

  • public File[] listFile():返回一个File数组,表示该File目录中的所有的子目录或者子文件。

class Fu{
      public Fu(){
      }
}

public class Demo06File extends Fu{
/*	public Demo06File() {
		this("张三");
	}
	
	public Demo06File(String name) {
		Demo06File();
	}*/
	
	public static void main(String[] args) {
//		show01();
//		show02();
		show03(20000);
	}
	
	public static void show04() {
		System.out.println("show04.......");
		//show03();//  java.lang.StackOverflowError
		
	}
	
	public static void show03(int n) {
		System.out.println("show03......." + n);
		if (n == 1) {
			return;
		}
		show03(n-1);//  java.lang.StackOverflowError
	}
	
	/*
	 * public File[] listFile():返回一个File数组,表示该File目录中的所有的子目录或者子文件
	 * 遍历构造方法中给出的目录,会获取目录中所有的文件夹、文件的名称,把获取到的多个名称存储到一个File类型的数组中
	 * 
	 */
	public static void show02() {
		File file = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		File[] list = file.listFiles();
		// 遍历
		for (File f : list) {
			System.out.println(f.toString());
		}
		
		/*
		 *  E:\codes\workspace\day26_LambdaAndFile\.classpath
			E:\codes\workspace\day26_LambdaAndFile\.project
			E:\codes\workspace\day26_LambdaAndFile\abc.txt
			E:\codes\workspace\day26_LambdaAndFile\bin
			E:\codes\workspace\day26_LambdaAndFile\file
			E:\codes\workspace\day26_LambdaAndFile\src
		 */
	}
	
	/*
	 * public String[] list():返回一个String数组,表示该File目录中的所有的子目录或者子文件。
	 * 遍历构造方法中给出的目录,会获取目录中所有的文件夹、文件的名称,把获取到的多个名称存储到一个String类型的数组中
	 * 
	 */
	public static void show01() {
		// java.lang.NullPointerException
		//File file = new File("E:\\codes\\workspace\\day26_LambdaAndFile\\abc.txt");
		// java.lang.NullPointerException
		// File file = new File("E:\\codes\\workspace\\day26_Lambda");
		File file = new File("E:\\codes\\workspace\\day26_LambdaAndFile");
		String[] list = file.list();
		// 遍历
		for (String string : list) {
			System.out.println(string);
		}
		/*
		 *  .classpath
			.project
			abc.txt
			bin
			file
			src
		 */
	}
}

标签:day26,System,File,println,public,out
来源: https://www.cnblogs.com/luayan/p/14125566.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有