一、什么是File类
java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。
二、文件的创建
import java.io.File;
public class TestFile1 {
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("user.dir"));
File f = new File("a.txt"); //相对路径:默认放到user.dir目录下面
f.createNewFile();//创建文件
File f2 = new File("d:/b.txt");//绝对路径
f2.createNewFile();
}
}
以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
三、常见的方法
下面是综合运用的一个代码
import java.io.File;
import java.io.IOException;
public class TestFile5 {
public static void main(String[] args) {
//指定一个文件
File file = new File("d:/sxt/b.txt");
//判断该文件是否存在
boolean flag= file.exists();
//如果存在就删除,如果不存在就创建
if(flag){
//删除
boolean flagd = file.delete();
if(flagd){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}else{
//创建
boolean flagn = true;
try {
//如果目录不存在,先创建目录
File dir = file.getParentFile();
dir.mkdirs();
//创建文件
flagn = file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
System.out.println("创建失败");
e.printStackTrace();
}
}
//文件重命名(同学可以自己测试一下)
//file.renameTo(new File("d:/readme.txt"));
}
}
三、递归遍历目录
使用递归将文件目录下的文件名全部打印出来
代码如下
import java.io.File;
public class Filetest2 {
public static void main(String[] args) {
File file=new File("E:/c语言");
Lookfile(file);
}
public static void Lookfile(File file){
System.out.println(file.getName());
if(file.isDirectory()){
File[] files=file.listFiles();
for(File temp:files){
Lookfile(temp);
}
}
}
}
下面是用递归将文件夹的名字打印出来:
import java.io.File;
import java.io.FileReader;
public class printClass {
private File file;
private String path;
private long len=0;
public printClass(String path){
this.path=path;
this.file=new File(path);
printLen(file);
}
public void printName(File file){
System.out.println(file.getName());
if(file==null||!file.exists()){
return;
}else if(file.isDirectory()){
for(File temp:file.listFiles()){
printName(temp);
}
}
}
public void printLen(File file){
if(file!=null&&file.exists()){
if(file.isFile()){
len=len+file.length();
}
else{
for(File temp:file.listFiles()){
printLen(temp);
}
}
}
}
public static void main(String[] args) {
printClass print=new printClass("C:/Users/兰嘉胜/Desktop");
System.out.println(print.getLen());
}
public long getLen() {
return len;
}
}