File类的基本用法(常用类之一)

       java.io.File类:代表文件和目录。在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到的本类。

File类的常见构造方法:public File(String pathname)

以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中储存。路径可以是绝对路径和相对路径,分隔符采用\\或者/。

通过File对象可以访问文件的属性。
public String getName()

public String getPath()
public boolean isFile()

public boolean isDirectory()

public boolean canRead()

public boolean canWrite()
public boolean exists()

public long length()
public boolean isHidden()

public long lastModified()
public File [] listFiles()

通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)。
• public boolean createNewFile()throws IOException
• public boolean delete() • public boolean mkdir(), mkdirs() 注意两个的区别!!

示例:

package cn.tanjianjie.test;
import java.io.File;
import java.io.IOException;
import java.util.Date;

/**
* 测试File类
* @author 谭键杰
*/
public class TestFile {
public static void main(String[] args) throws IOException {
File f = new File("d:\\a.txt");//绝对路径创建File类
System.out.println(f);
f.renameTo(new File("d:/bb.txt"));//相对路径,改文件名

System.out.println(System.getProperty("user.dir"));//显示默认目录,所在储存空间

//在当前项目里面创建文件
File f2=new File("gg.txt");

System.out.println("File是否存在:"+f2.exists());
System.out.println("File是否在目录:"+f2.isDirectory());
System.out.println("File是否是文件:"+f2.isFile());
System.out.println("File最后修改时间:"+new Date(f2.lastModified()));
System.out.println("File的大小:"+f2.length());
System.out.println("File的文件名:"+f2.getName());
System.out.println("File的目录路径:"+f2.getPath());

File f3=new File("d:/电影/华语/大陆");
//boolean flag=f3.mkdir();//迷路结构中有一个不存在,则不会创建整个目录树
boolean flag=f3.mkdirs();//目录结构中有一个不存在也没关系,创建整个目录树
System.out.println(flag);//创建失败
}
}
运行结果:

递归遍历目录结构和树状展现:
递归结构包括两个部分:
1、定义递归头。如果没有头,将陷入死循环,也就是递归的结束条件。
2、递归体。

示例:
package cn.tanjianjie.test;
import java.io.File;
public class TestFileTree {
public static void main(String[] args){
File f=new File("c:/c语言作业专用");

printFile(f,0);
}
static void printFile(File file,int level){//知道第几层被调用

//输出层数
for(int i=0;i<level;i++){
System.out.println("-");
}
System.out.println(file.getName());
if(file.isDirectory()){//若果是目录
File[] files=file.listFiles();//所有子目录、子文件

for(File temp:files){
printFile(temp,level+1);//递归调用
}
}
}
}
运行结果:

 枚举类:

枚举类型的定义包括枚举声明和枚举体。格式如下:

enum 枚举名{

           枚举体(常量列表)

}

枚举体就是放置一下额常用列表,所有的枚举类隐性地继承java.lang.Enum。枚举实质上还是,而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举的类型名使用。

 示例:

package cn.tanjianjie.test;
/**
* 测试枚举类
* @author 谭键杰
*/
public class TestEnum {
public static void main(String[] args){
System.out.println(Season.SPRING);

Season a=Season.AUTUMN;

switch(a){
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case AUTUMN:
System.out.println("秋天");
break;
case WINTER:
System.out.println("冬天");
break;
}
}

//定义枚举类
enum Season{
SPRING,SUMMER,AUTUMN,WINTER
}

enum Week{
星期一,星期二,星期三,星期四,星期五,星期六,星期天
}
}
运行结果:

 


posted @ 2019-01-28 00:02  Gsan  阅读(4759)  评论(0编辑  收藏  举报