Java基础(11)-----File

File类

  • File类介绍
    • 它是文件和目录路径名的抽象表示
    • 文件和目录是可以通过File封装成对象的
    • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • 文件目录分隔符
方式说明
/在Linux操作系统,分隔符建议使用斜线
\在Windows操作系统,分隔符建议使用反斜线
File.separatorFile.separator静态成员,作用是生成一个分隔符而不受操作系统的影响

构造方法

构造方法

方法名说明
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例
File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例

常用方法

创建文件
方法名说明
public boolean createNewFile()当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir()创建由此抽象路径名命名的目录
public boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
  • 测试代码
@Test
	public void test5() throws IOException{
		//创建一个三国1.txt文件
		File f = new File("E:\\testNomal\\FileTest\\三国.txt");
		System.out.println(f.createNewFile());
		//创建一个三国目录
		File f1 = new File("E:\\testNomal\\FileTest\\三国");
		System.out.println(f1.mkdir());
		//创建一个多级目录,是目录,即文件夹,不能是文件
		File f2 = new File("E:\\testNomal\\FileTest\\三国1\\name1.txt");
		System.out.println(f2.mkdirs());
	}
/*
true
true
true
*/

image-20210820142058089
image-20210820142011436

image-20210820142028298

能否读写
方法名说明
booleancanRead()文件是否可读
boolean canWrite()文件是否可写
  • 测试代码
@Test
	public void test2(){
		File f = new File("E:\\testNomal\\FileTest\\三国演义1.txt");
		System.out.println(f.canRead());//true
		System.out.println(f.canWrite());//true
	}
判断功能
方法名说明
public boolean isDirectory()测试此抽象路径名表示的File是否为目录
public boolean isFile()测试此抽象路径名表示的File是否为文件
public boolean exists()测试此抽象路径名表示的File是否存在
  • 测试代码
	@Test
	public void test3(){
		//创建一个File对象
		File f = new File("E:\\testNomal\\FileTest\\三国演义1.txt");
//      public boolean isDirectory():测试此抽象路径名表示的File是否为目录
//      public boolean isFile():测试此抽象路径名表示的File是否为文件
//      public boolean exists():测试此抽象路径名表示的File是否存在
		System.out.println(f.isDirectory());//false
		System.out.println(f.isFile());//true
		System.out.println(f.exists());//true
	}
获取功能
方法名说明
public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
public String getPath()将此抽象路径名转换为路径名字符串
public String getParent()获取上一级目录
public String getName()返回由此抽象路径名表示的文件或目录的名称
public String[] list()返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles()返回此抽象路径名表示的目录中的文件和目录的File对象数组
  • 测试代码
@Test
	public void test4(){
		//创建一个File对象
		File f = new File("E:\\testNomal\\FileTest\\三国演义1.txt");
		System.out.println("------------文件----------");
//      public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
//      public String getPath():将此抽象路径名转换为路径名字符串
//      public String getName():返回由此抽象路径名表示的文件或目录的名称
		System.out.println(f.getAbsolutePath());
		System.out.println(f.getPath());
		System.out.println(f.getName());
		System.out.println("-----------文件夹----------");
		File f1 = new File("E:\\testNomal\\FileTest");
		System.out.println(f1.getAbsolutePath());
		System.out.println(f1.getPath());
		System.out.println(f1.getName());
//      public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
//      public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
		System.out.println("--------list()--------");
		String[] list = f1.list();
		for(String s : list){
			System.out.println(s);
		}
		System.out.println("---------listFile()--------");
		File[] files = f1.listFiles();
		for(File fi : files){
			System.out.println(fi);
		}
	}
/*
------------文件----------
E:\testNomal\FileTest\三国演义1.txt
E:\testNomal\FileTest\三国演义1.txt
三国演义1.txt
E:\testNomal\FileTest
-----------文件夹----------
E:\testNomal\FileTest
E:\testNomal\FileTest
FileTest
E:\testNomal
--------list()--------
三国1
三国演义.mp3
三国演义1.txt
三国演义2.txt
三国演义3.txt
三国演义4.txt
新建文本文档.md
---------listFile()--------
E:\testNomal\FileTest\三国1
E:\testNomal\FileTest\三国演义.mp3
E:\testNomal\FileTest\三国演义1.txt
E:\testNomal\FileTest\三国演义2.txt
E:\testNomal\FileTest\三国演义3.txt
E:\testNomal\FileTest\三国演义4.txt
E:\testNomal\FileTest\新建文本文档.md
*/
删除功能
方法名说明
public boolean delete()删除由此抽象路径名表示的文件或目录
@Test
	public void test5() throws IOException{
		//创建一个三国1.txt文件
		File f = new File("E:\\testNomal\\FileTest\\三国.txt");
		System.out.println(f.createNewFile());
		//创建一个三国目录
		File f1 = new File("E:\\testNomal\\FileTest\\三国");
		System.out.println(f1.mkdir());
		//创建一个多级目录,是目录,即文件夹,不能是文件
		File f2 = new File("E:\\testNomal\\FileTest\\三国1\\name1.txt");
		System.out.println(f2.mkdirs());
		System.out.println();
		//删除刚刚创建的内容
		System.out.println(f.delete());
		System.out.println(f1.delete());
		System.out.println(f2.delete());
	}
/*
false
false
false

true
true
true
*/

image-20210820142331029

image-20210820142348273

  • 测试代码
public class FileTest1 {
	public static void main(String[] args) {
		//创建File对象指定文件所在的目录(文件夹)
//		File f = new File("E:"+File.separator+"testNomal"+File.separator+"FileTest");
		File f = new File("E:\\testNomal\\FileTest");
		//获取当前目录(文件夹)下所以的文件及文件夹(File对象数组)
		File[] fs = f.listFiles();
		for(File fi : fs){
//			System.out.println(fi);
			/*
E:\testNomal\FileTest\三国演义.mp3
E:\testNomal\FileTest\三国演义1.txt
E:\testNomal\FileTest\三国演义2.txt
E:\testNomal\FileTest\三国演义3.txt
E:\testNomal\FileTest\三国演义4.txt
E:\testNomal\FileTest\新建文本文档.md
			 */
			System.out.println(fi.getName());
			/*
三国演义.mp3
三国演义1.txt
三国演义2.txt
三国演义3.txt
三国演义4.txt
新建文本文档.md

			 */
		}
		
	}
}
  • 测试代码
@Test
	public void test1(){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要查找的文件名:");
		String path = sc.next();
		File f = new File("E:\\testNomal\\FileTest");
		File[] files = f.listFiles();
		for(File f1  : files){
			if(path.equals(f1.getName())){
				System.out.println("查找到了文件:"+f1.getName());
			}
		}
		
	}
/*
请输入要查找的文件名:
三国演义1.txt
查找到了文件:三国演义1.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值