java.io.File
- File的每一个实例用于表示硬盘上的一个文件或目录.使用File可以:
- 1:访问该文件目录的属性信息(名字,大小,修改时间等)
- 2:创建或删除文件目录
- 3:访问一个目录中的所有子项
File创建时需要指定其表示的文件或目录的路径信息,而路径有两种写法
绝对路径:
例如:D:/jas2009/JSD2009/demo.txt
相对路径:
例如:./demo.txt
绝对路径的优点在于清晰明了,但是位置是固定的,跨平台不利.
相对路径的优点在于适应性好,利于跨平台.但是缺点是不清晰,需要 视当前程序的运行环境而定.
在idea(eclipse也相同)中当前目录的位置是当前程序所在的目录,这里相当于是JSD2009_SE这个目录
File file = new File("./demo.txt");
String name = file.getName(); //获取文件的名字
System.out.println(name);
long length = file.length(); //文件大小
System.out.println(length+"字节");
boolean cr = file.canRead(); //文件是否可读
boolean cw = file.canWrite(); //文件是否可写
System.out.println("可读:"+cr);
System.out.println("可写:"+cw);
boolean ih = file.isHidden(); //文件是否可隐藏
System.out.println("是否可隐藏:"+ih);
createNewFile():创建文件
//在当前目录下新建一个文件:test.txt
File file = new File("./test.txt");
//boolean exists()该方法是判断File表示的文件或目录是否已经存在
if(file.exists()){
System.out.println("该文件已存在");
}else{
file.createNewFile();
System.out.println("文件已创建");
}
delete():删除文件
File file = new File("test.txt");
if(file.exists()){
file.delete();
System.out.println("该文件已删除");
}else {
System.out.println("该文件不存在");
}
创建目录一般用mkdirs
File dir = new File("a/b/c/d/e/f");
if(dir.exists()){
System.out.println("该目录已存在!");
}else{
// dir.mkdir(); //创建的目录所在的目录必须存在,否则创建不成功
dir.mkdirs(); //会将不存在负目录一同创建出来
System.out.println("该目录已创建!");
}
delete():删除目录:
File file = new File("./demo");
if(file.exists()){
file.delete(); //删除目录时要求该目录必须是空的
System.out.println("该目录已删除");
}else {
System.out.println("该目录不存在");
}
//获取当前目录的所有子项
File dir = new File(".");
/*
boolean isFile()判断当前File表示的是否为一个文件
boolean isDirectory()判断是否为一个目录
*/
if(dir.isDirectory()){
/*
Files listFile()
获取当前File对象表示的一个目录中的所有子项,每个子项都以一个
File对象形式表示最终以数组形式返回
*/
File[] subs = dir.listFiles();
System.out.println("子项共:"+subs.length+"个");
for (int i=0;i<subs.length;i++){
System.out.println(subs[i].getName());
}
}else {
System.out.println("不是一个目录");
}
获取当前目录中含有a的子项
File dir = new File(".");
if(dir.isDirectory()){
File[] subs = dir.listFiles(new FileFilter() {
public boolean accept(File file) {
String name = file.getName();
int index = name.indexOf("a");
return index!=-1;
}
});
System.out.println("一共:"+subs.length+"个");
}