【JAVA】文件储存——File

【JAVA】文件储存——File

目录

【File类】

【创建File方法】

【File删除方法】

【File判断和获取方法】

【File高级获取方法】

【File类——示例项目】

【File类】

【概述】:是文件和目录路径名的抽象表示

【特点】:

文件和目录可以通过File封装成对象File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的。

【构造方法】:

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

File​(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例

File​(File parent, String child):从父抽象路径名和子路径名字符串创建新的File实例

例:

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

String path="G:\\JAVA\\a.txt";

File file1=new File(path);

System.out.println(file1);

//File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例

String path1="G:\\JAVA";

String path2="a.txt";

File file2=new File(path1,path2);

System.out.println(file2);

//File(File parent, String child):从父抽象路径名和子路径名字符串创建新的File实例

File file=new File("G:\\JAVA");

String path3="a.txt";

File file3=new File(file,path3);

System.out.println(file3);

【创建File方法】

public boolean createNewFile():创建一个新的空的文件

【注意】:

如果文件存在,那么会创建失败,返回false如果文件不存在,那么会创建成功,返回truecreateNewFile方法不管调用者有没有后缀名,只能创建文件

public boolean mkdir():创建一个单级文件夹

【注意】:

只能创建单级文件夹,不能创建多级文件夹不管调用者有没有后缀名,只能创建文件夹

public boolean mkdirs():创建一个多级文件夹

【注意】:

既可以创建多级文件夹,也可以创建单级文件夹不管调用者有没有后缀名,只能创建文件夹

例:

File file4=new File("G:\\JAVA\\a.txt");

boolean result = file4.createNewFile();

System.out.println(result);

File file5=new File("G:\\JAVA\\aaa");

boolean result1=file5.mkdir();

File file6=new File("G:\\JAVA\\aaa\\bbb");

boolean result2=file6.mkdirs();

System.out.println(result2);

【File删除方法】

public boolean delete​():删除由此抽象路径名表示的文件或目录

【注意】:

delete方法直接删除不走回收站。如果删除的是一个文件,直接删除。如果删除的是一个文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。

例:

File file=new File("G:\\JAVA\\a.txt");

boolean result = file.delete();

System.out.println(result);

【File判断和获取方法】

public boolean isDirectory():测试此抽象路径名表示的File是否为目录

public boolean isFile():测试此抽象路径名表示的File是否为文件

public boolean exists():测试此抽象路径名表示的File是否存在

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

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

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

例:

File file=new File("G:\\JAVA\\a.txt");

//public boolean isDirectory():测试此抽象路径名表示的File是否为目录

boolean result1 = file.isDirectory();

System.out.println(result1);

//public boolean isFile():测试此抽象路径名表示的File是否为文件

boolean result2 = file.isFile();

System.out.println(result2);

//public boolean exists():测试此抽象路径名表示的File是否存在

boolean result3 = file.exists();

System.out.println(result3);

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

String result4 = file.getName();

System.out.println(result4);

【File高级获取方法】

public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组

【注意】:

当调用者不存在时,返回null当调用者是一个文件时,返回null当调用者是一个空文件夹时,返回一个长度为0的数组当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容当调用者是一个需要权限才能进入的文件夹时,返回null

例:

File file=new File("G:\\JAVA");

File[] files=file.listFiles();//返回值为file列表

for (File path : files) {

System.out.println(path);

}

【File类——示例项目】

1、删除一个包含多个文件夹和文件的多级文件夹

public static void main(String[] args) {

File src=new File("G:\\ceshi");

deleteDir(src);

}

private static void deleteDir(File src) {

File[] files=src.listFiles();

for (File file : files) {

if(file.isFile()){

file.delete();

}else {

deleteDir(file);

}

}

src.delete();

}

2、统计一个文件夹中每种文件的个数并打印(利用循环和递归)

public static void main(String[] args) {

File file=new File("stream_io");

HashMap hm=new HashMap<>();

getCount(hm,file);

System.out.println(hm);

}

private static void getCount(HashMap hm, File file) {

File[] files=file.listFiles();

for (File f : files) {

if(f.isFile()){

String fileName = f.getName();

String[] fileNameArr = fileName.split("\\.");

if(fileNameArr.length==2){

String fileEndName=fileNameArr[1];

if(hm.containsKey(fileEndName)){

//已经存在

//将已经出现的次数获取出来

Integer count = hm.get(fileEndName);

count++;

//覆盖之前的值

hm.put(fileEndName,count);

}else{

//不存在

//表示当前文件是第一次出现

hm.put(fileEndName,1);

}

}

}else {

getCount(hm,f);

}

}

}

相关推荐

365bet亚洲体育 2月14号为什么是情人节

2月14号为什么是情人节

bst365大陆投注 从《燕云十六声》聊聊游戏分类那些事

从《燕云十六声》聊聊游戏分类那些事

365bet亚洲体育 手机同花顺怎么看分红记录?

手机同花顺怎么看分红记录?