javaSE.I/O-File类
File类
- 代表物理盘符中的一个文件或文件夹
- 方法:
boolean createNewFile() //创建一个新文件;
mkdir() //创建一个新目录;
boolean delete() //删除文件或空目录;
exists() //判断File对象所代表的对象是否存在;
String getAbsolutePath() //获取文件的绝对路径;
String getName() //获取名字
String getParent() //获取文件/目录所在的目录;
isDirectory() //是否是目录;
isFile() //是否是文件;
length() //获取文件的长度;
listFiles() //列出目录中的所有内容;
renameTo() //修改文件名为
/**
* File类的使用
* 分隔符、文件操作、文件夹操作
*/
public class FileDemo {
public static void main(String[] args) throws Exception{
/*
//1.分隔符
System.out.println("路径分隔符:"+ File.pathSeparator);
System.out.println("名称分隔符:"+File.separator);
//2.创建文件
File file = new File("d:\\file.txe");
System.out.println(file.toString());
if(!file.exists()){
System.out.println("文件创建结果:"+file.createNewFile());
}
//3.1 直接删除文件
// System.out.println("文件删除结果:"+file.delete());
//3.2 jvm退出时删除
// file.deleteOnExit();
// Thread.sleep(5000);
//4.获取文件信息
System.out.println("获取文件的绝对路径:" + file.getAbsolutePath());
System.out.println("获取文件路径:"+file.getPath());
System.out.println("获取文件名称:"+file.getName());
System.out.println("获取父目录:"+file.getParent());
System.out.println("获取父目录:"+file.getParentFile());//与上一行什么区别?
System.out.println("获取文件长度:"+file.length());
System.out.println("获取文件创建/修改时间:" + new Date(file.lastModified()).toLocaleString());
//4.判断
System.out.println("是否可写:"+file.canWrite());
System.out.println("是否是文件:"+file.isFile());
System.out.println("是否隐藏:"+file.isHidden());
//1.创建文件夹
File dir = new File("d:\\a\\b");
System.out.println(dir.toString());
if(!dir.exists()){
// dir.mkdir();//只能创建单级目录;
System.out.println("创建文件夹结果:"+dir.mkdirs());
}
//2.1 直接删除文件夹(只能删除一级空目录)
// System.out.println("直接删除文件夹结果:" + dir.delete());
//2.2 jvm退出时删除
// dir.deleteOnExit();
// Thread.sleep(5000);
//3.获取文件夹信息
System.out.println("获取绝对路径:"+dir.getAbsolutePath());
System.out.println("获取路径:"+dir.getPath());
System.out.println("获取文件夹名称:"+dir.getName());
System.out.println("获取父目录:"+dir.getParent());
//4.判断
System.out.println("是否是文件夹:"+dir.isDirectory());
System.out.println("是否是隐藏:"+dir.isHidden());
//5.遍历文件夹
File dir2 = new File("d:\\a");
String[] files=dir2.list();
if (files==null) {
System.out.println("null");
}else{
System.out.println(files.length);
for (String str:files) {
System.out.println(str);
}
}
//6.FileFilter接口使用
System.out.println("---FileFilter--------");
File[] files2=dir2.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".txt")){
return true;
}
return false;
}
});
if (files2==null) {
System.out.println("null");
}else{
System.out.println(files2.length);
for (File file2:files2) {
System.out.println(file2.getName());
}
}
*/
//递归遍历文件夹、文件
//1.新建文件夹、文件
File a = new File("d:\\a");
File a1 = new File("d:\\a\\a1.txt");
File a2 = new File("d:\\a\\a2.txt");
File b = new File("d:\\a\\b");
File b1 = new File("d:\\a\\b\\b1.txt");
File b2 = new File("d:\\a\\b\\b2.txt");
a.mkdir();
b.mkdirs();
a1.createNewFile();
a2.createNewFile();
b1.createNewFile();
b2.createNewFile();
//遍历文件、文件夹
listDir(new File("d:\\a"));
//删除文件、文件夹
deleteDir(new File("d:\\a"));
}
//递归遍历文件夹、文件函数
public static void listDir(File dir){
File[] files=dir.listFiles();
System.out.println(dir.getAbsolutePath());
if(files!=null&&files.length>0){
for(File file:files){
if (file.isDirectory()){
listDir(file); //递归调用
}else{
System.out.println(file.getAbsolutePath());
}
}
}
}
//递归删除文件、文件夹
public static void deleteDir(File dir){
File[] files=dir.listFiles();
if(files!=null&&files.length>0){
for(File file:files){
if(file.isDirectory()){
deleteDir(file);
}else {
System.out.println(file.getAbsolutePath()+"删除:"+file.delete());
}
}
}
System.out.println(dir.getAbsolutePath()+"删除:"+dir.delete());
}
}
FileFilter接口
public interface FileFilter
boolean accept(File pathname)
当调用File类中的listFiles()方法时,支持传入FileFilter接口实现类,对获取文件进行过滤,只有满足条件的文件才出现在listFiles()的返回值中;
/**
* File类的使用
* 分隔符、文件操作、文件夹操作
*/
public class FileDemo {
public static void main(String[] args) throws Exception{
//1.分隔符
System.out.println("路径分隔符:"+ File.pathSeparator);
System.out.println("名称分隔符:"+File.separator);
//2.创建文件
File file = new File("d:\\file.txe");
System.out.println(file.toString());
if(!file.exists()){
System.out.println("文件创建结果:"+file.createNewFile());
}
//3.1 直接删除文件
// System.out.println("文件删除结果:"+file.delete());
//3.2 jvm退出时删除
// file.deleteOnExit();
// Thread.sleep(5000);
//4.获取文件信息
System.out.println("获取文件的绝对路径:" + file.getAbsolutePath());
System.out.println("获取文件路径:"+file.getPath());
System.out.println("获取文件名称:"+file.getName());
System.out.println("获取父目录:"+file.getParent());
System.out.println("获取父目录:"+file.getParentFile());//与上一行什么区别?
System.out.println("获取文件长度:"+file.length());
System.out.println("获取文件创建/修改时间:" + new Date(file.lastModified()).toLocaleString());
//4.判断
System.out.println("是否可写:"+file.canWrite());
System.out.println("是否是文件:"+file.isFile());
System.out.println("是否隐藏:"+file.isHidden());
//1.创建文件夹
File dir = new File("d:\\a\\b");
System.out.println(dir.toString());
if(!dir.exists()){
// dir.mkdir();//只能创建单级目录;
System.out.println("创建文件夹结果:"+dir.mkdirs());
}
//2.1 直接删除文件夹(只能删除一级空目录)
// System.out.println("直接删除文件夹结果:" + dir.delete());
//2.2 jvm退出时删除
// dir.deleteOnExit();
// Thread.sleep(5000);
//3.获取文件夹信息
System.out.println("获取绝对路径:"+dir.getAbsolutePath());
System.out.println("获取路径:"+dir.getPath());
System.out.println("获取文件夹名称:"+dir.getName());
System.out.println("获取父目录:"+dir.getParent());
//4.判断
System.out.println("是否是文件夹:"+dir.isDirectory());
System.out.println("是否是隐藏:"+dir.isHidden());
//5.遍历文件夹
File dir2 = new File("d:\\a");
String[] files=dir2.list();
if (files==null) {
System.out.println("null");
}else{
System.out.println(files.length);
for (String str:files) {
System.out.println(str);
}
}
//6.FileFilter接口使用
System.out.println("---FileFilter--------");
File[] files2=dir2.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".txt")){
return true;
}
return false;
}
});
if (files2==null) {
System.out.println("null");
}else{
System.out.println(files2.length);
for (File file2:files2) {
System.out.println(file2.getName());
}
}
}
}