详述IO: File类中的方法

概念

File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。

File类构造方法

方法

说明

File(String pathname)

通过路径名创建一个新 File 实例

File(File parent, String child)

根据父目录路径File实例和子目录或文件路径创建一个新 File 实例

File(String parent, String child) 

根据父目录路径和子目录或文件路径创建一个新 File 实例

File(URI uri)

通过统一资源标识符创建一个新的 File 实例

import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32");
		String path = file.getAbsolutePath();
		System.out.println(path);
		
		file = new File(new File("C:\\Windows"), "System32");
		path = file.getAbsolutePath();
		System.out.println(path);
		
		file = new File("C:\\Windows", "System32");
		path = file.getAbsolutePath();
		System.out.println(path);
	}
}

File类常用方法

  • String getName():返回此对象表示的文件或目录最后一级文件夹名称
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32\\cmd.exe");
		String name = file.getName();//返回文件名cmd.exe
		System.out.println(name);
	}
}

代码2:
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32");
		String name = file.getName();//返回目录最后一级文件夹名称System32
		System.out.println(name);
	}
}

  • String getParent():返回此File对象的父目录路径名;如果此路径名没有指定父目录,则返回 null
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\Web\\Wallpaper");
		System.out.println(file.getParent());//输出C:\Windows\Web
	}
}

  • File getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\Web\\Wallpaper");
		file = file.getParentFile();
		System.out.println(file.getName());//输出Web
	}
}
  • String getPath() :返回File对象所表示的字符串路径。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\Web\\Wallpaper");
		file = file.getParentFile();
		System.out.println(file.getPath());//输出C:\Windows\Web
	}
}
  • boolean renameTo(File dest):重新命名此File对象表示的文件,重命名成功返回true,否则返回false。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File oldFile = new File("D:\\images\\image.jpg");
		File newFile = new File("D:\\images\\Windows.jpg");
		boolean result = oldFile.renameTo(newFile);//将D盘images文件夹中图片更名为Windows.jpg
		if (result) {
			System.out.println("重命名成功");
		} else {
			System.out.println("重命名失败");
		}
	}
  • boolean mkdir():创建此File类对象指定的目录,不包含父目录。创建成功回true,否则返回false;
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Program_Files\\Java");
		if (file.mkdir()) {
			System.out.println("创建成功");
		}else {
			System.out.println("创建失败");
		}
	}
}

【由于Program_Files文件夹没有被创建,所以无法创建“C:\Program_Files\Java”目录,欲采用这种方法创建该目录必须先手动创建Program_Files文件夹。】

  • boolean mkdirs():创建此File对象指定的目录,包括所有必需但不存在的父目录,创建成功返回true;否则返回false。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Program_Files\\Java");
		if (file.mkdirs()) {
			System.out.println("创建成功");
		}else {
			System.out.println("创建失败");
		}
	}
}

【欲采用这种方法创建“C:\Program_Files\Java”目录,尽管Program_Files文件夹没有被创建,但依然可以成功。】

  • boolean createNewFile():如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false;如果所创建文件所在目录不存在则创建失败并出现IOException异常。

注意:mkdir()和mkdirs()只能创建目录,不能创建文件;而createNewFile()只能创建文件,不能创建目录;

  • boolean exists():判断文件或目录是否存在
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32\\cmd.exe");
		if (file.exists()) {//判断cmd.exe文件是否存在
			System.out.println("文件存在");
		}
	}
}
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32");
		if (file.exists()) {//判断目录是否存在
			System.out.println("目录存在");
		}
	}
}
  • boolean delete():删除File类对象表示的目录或文件。如果该对象表示一个目录,则该目录必须为空才能删除;文件或目录删除成功返回true,否则false。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("D:\\images");
		if (file.delete()) {// 由于D:\images目录非空,所以删除失败
			System.out.println("目录删除成功");
		} else {
			System.out.println("目录删除失败");
		}
	}
}
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("D:\\images\\image.jpg");
		if (file.delete()) {//删除图片文件
			System.out.println("图片删除成功");
		} else {
			System.out.println("图片删除失败");
		}
  • boolean isDirectory():判断此File对象代表的路径表示是不是目录,只有File对象代表路径存在且是一个目录时才返回true,否则返回false。 
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Program Files");
		System.out.println(file.isDirectory());//返回true
	}
}

  • boolean isFile():判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:\\Windows\\System32\\cmd.exe");
		System.out.println(file.isFile());//返回true
	}
}
  • String[] list():返回由File对象对应目录所包含文件名文件夹名组成的字符串数组。
  • import java.io.File;
    
    public class Test {
    
    	public static void main(String[] args) {
    		String[] names = new File("C:\\Program Files").list();
    		for (String name : names) {
    			System.out.println(name);
    		}
    	}
    }
    
    
  • File[] listFiles():返回由当前File对象对应目录所包含文件路径文件夹路径组成的File类型的数组。
import java.io.File;

public class Test {

	public static void main(String[] args) {
		File[] files = new File("C:\\Program Files").listFiles();
		for (File file : files) {
			String fileName = file.getName();
			System.out.println(fileName);
		}
	}
}

File类属性

static separator:指定文件或目录路径时使用斜线或反斜线来写,但是考虑到跨平台,斜线反斜线最好使用File类的separator属性来表示:

import java.io.File;

public class Test {

	public static void main(String[] args) {
		File file = new File("C:"+File.separator+"Windows"+File.separator+"System32");
		System.out.println(file.getPath());//输出C:\Windows\System32
	}
}

绝对路径与相对路径

绝对路径:从盘符开始的路径。

相对路径:从当前路径开始的路径。

d./ 代表同级目录

d../ 代表一级上级目录(间隔一个目录)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值