1.创建文件
需求:在E盘下,创建一个目录test;在test目录中创建一个名为log.txt的文件;
错误方式1:
package prac;
import java.io.File;
import java.io.IOException;
public class PracFile {
public static void main(String[] args) throws IOException {
File file = new File("e:/test/log.txt");
boolean mkdirs = file.mkdirs();
System.out.println("创建目录和文件:"+mkdirs);
}
}
运行结果:e盘下,test1文件夹里的log1.txt不是文件,而是一个目录
错误方式2:
package prac;
import java.io.File;
import java.io.IOException;
public class PracFile {
public static void main(String[] args) throws IOException {
//如果e盘下没有test2目录,执行createNewFile()时,会出现异常
File file = new File("e:/test/log.txt");
boolean newFile = file.createNewFile();
System.out.println("创建目录和文件:"+newFile);
}
}
因为此时在E盘下没有test目录时,运行会出现异常,截图如下:
正确的创建方式
方式1:
package prac;
import java.io.File;
import java.io.IOException;
public class PracFile {
public static void main(String[] args) throws IOException {
//声明并创建目录对象
File file = new File("e:/test");
//在磁盘中,创建目录
boolean mkdir = file.mkdir();
System.out.println("创建目录:"+mkdir);
//声明并创建文件对象
File file1 = new File("e:/test/log.txt");
//在磁盘中,创建文件
boolean newFile = file1.createNewFile();
System.out.println("创建文件:"+newFile);
}
}
方式2:
package prac;
import java.io.File;
import java.io.IOException;
public class PracFile {
public static void main(String[] args) throws IOException {
//声明并创建文件对象
File file = new File("e:/test/test2/log.txt");
//获取父目录对象
File parentFile = file.getParentFile();
//磁盘中创建父目录
boolean mkdirs = parentFile.mkdirs();
//创建文件对象
boolean newFile = file.createNewFile();
}
}
2.常用方法
getName()
getParent()
getAbsolutePath()
package prac;
import java.io.File;
import java.io.IOException;
public class PracFile {
public static void main(String[] args) throws IOException {
//含有目录的相对路径
getRes("test/test.txt");
//没有目录的相对路径
getRes("test2.txt");
}
public static void getRes(String fileName) throws IOException {
System.out.println("参数String,即抽象路径名:"+fileName);
File file1 = new File(fileName);
//获取【抽象路径名】中的文件名
String name = file1.getName();
System.out.println("getName()返回值为:"+name);
//获取文件对应的绝对路径
String absolutePath = file1.getAbsolutePath();
System.out.println("getAbsolutePath()返回值为:"+absolutePath);
//获取【抽象路径名】中的父目录信息,没有父目录,则返回null
String parent = file1.getParent();
System.out.println("getParent()返回值为:"+parent);
}
}
控制台输出结果如下
参数String,即抽象路径名:test/test.txt
getName()返回值为:test.txt
getAbsolutePath()返回值为:E:\ideaPro4_1\CoreJava2\test\test.txt
getParent()返回值为:test
==============================================
参数String,即抽象路径名:test2.txt
getName()返回值为:test2.txt
getAbsolutePath()返回值为:E:\ideaPro4_1\CoreJava2\test2.txt
getParent()返回值为:null
==============================================