目录:
File类构造方法获取功能的方法绝对路径和相对路径判断功能的方法创建删除功能的方法目录的遍历
1.File类构造方法
File类作用:
通过路径名可以表示电脑上的文件或文件夹"C:\MyFileTest\aaa"
File构造方法:
File(String pathname) 通过路径名创建一个File对象File(String parent, String child) 通过父路径字符串和子路径字符串创建File对象File(File parent, String child) 通过父路径File对象和子路径字符串创建File对象
斜杠问题:
\反斜杠,在字符串中需要\\ windows还支持 /, 只需要写一个/
public static void test03() {
File parent
= new File("C:/MyFileTest");
File file
= new File(parent
, "666.txt");
System
.out
.println("file = " + file
);
}
public static void test02() {
File file
= new File("C:\\MyFileTest", "aaa\\1.png");
System
.out
.println("file = " + file
);
}
public static void test01() {
File file
= new File("C:\\MyFileTest\\123.txt");
System
.out
.println("file = " + file
);
}
2.获取功能的方法
public String getAbsolutePath() :返回此File的绝对路径名字符串。public String getPath() :将此File转换为路径名字符串。public String getName() :返回由此File表示的文件或目录的名称。public long length() :返回由此File表示的文件的长度。
public class FileGet {
public static void main(String
[] args
) {
File f
= new File("d:/aaa/bbb.java");
System
.out
.println("文件绝对路径:"+f
.getAbsolutePath());
System
.out
.println("文件构造路径:"+f
.getPath());
System
.out
.println("文件名称:"+f
.getName());
System
.out
.println("文件长度:"+f
.length()+"字节");
File f2
= new File("d:/aaa");
System
.out
.println("目录绝对路径:"+f2
.getAbsolutePath());
System
.out
.println("目录构造路径:"+f2
.getPath());
System
.out
.println("目录名称:"+f2
.getName());
System
.out
.println("目录长度:"+f2
.length());
}
}
输出结果:
文件绝对路径
:d
:\aaa\bbb
.java
文件构造路径
:d
:\aaa\bbb
.java
文件名称
:bbb
.java
3.绝对路径和相对路径
绝对路径:从盘符开始的路径,这是一个完整的路径。相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。
public class FilePath {
public static void main(String
[] args
) {
File f
= new File("D:\\bbb.java");
System
.out
.println(f
.getAbsolutePath());
File f2
= new File("bbb.java");
System
.out
.println(f2
.getAbsolutePath());
}
}
输出结果:
D
:\bbb
.java
D
:\idea_project_test4\bbb
.java
4.判断功能的方法
public boolean exists() :此File表示的文件或目录是否实际存在。public booleanisDirectory() :此File表示的是否为目录。public boolean isFile() :此File表示的是否为文件。
public class FileIs {
public static void main(String
[] args
) {
File f
= new File("d:\\aaa\\bbb.java");
File f2
= new File("d:\\aaa");
System
.out
.println("d:\\aaa\\bbb.java 是否存在:"+f
.exists());
System
.out
.println("d:\\aaa 是否存在:"+f2
.exists());
System
.out
.println("d:\\aaa 文件?:"+f2
.isFile());
System
.out
.println("d:\\aaa 目录?:"+f2
.isDirectory());
}
}
输出结果:
d
:\aaa\bbb
.java 是否存在
:true
d
:\aaa 是否存在
:true
d
:\aaa 文件
?:false
d
:\aaa 目录
?:true
5.创建删除功能的方法
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。public boolean delete() :删除由此File表示的文件或目录。public boolean mkdir() :创建由此File表示的目录。public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
public class FileCreateDelete {
public static void main(String
[] args
) throws IOException
{
File f
= new File("aaa.txt");
System
.out
.println("是否存在:"+f
.exists());
System
.out
.println("是否创建:"+f
.createNewFile());
System
.out
.println("是否存在:"+f
.exists());
File f2
= new File("newDir");
System
.out
.println("是否存在:"+f2
.exists());
System
.out
.println("是否创建:"+f2
.mkdir());
System
.out
.println("是否存在:"+f2
.exists());
File f3
= new File("newDira\\newDirb");
System
.out
.println(f3
.mkdir());
File f4
= new File("newDira\\newDirb");
System
.out
.println(f4
.mkdirs());
System
.out
.println(f
.delete());
System
.out
.println(f2
.delete());
System
.out
.println(f4
.delete());
}
}
API中说明:delete方法,如果此File表示目录,则目录必须为空才能删除。
6. 目录的遍历
public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
public class FileFor {
public static void main(String
[] args
) {
File dir
= new File("d:\\java_code");
String
[] names
= dir
.list();
for(String name
: names
){
System
.out
.println(name
);
}
File
[] files
= dir
.listFiles();
for (File file
: files
) {
System
.out
.println(file
);
}
}
}