1.File 类在java程序中,对磁盘文件进行描述的类。文件和目录路径名的抽象表示形式。
FileDemo1
文件与文件夹的创建方法以及它们的方法的使用
public class Demo1 {
public static void main(String[] args) {
//创建file对象
File file = new File("F:\\");
File file1 = new File(file,"filetest");
File file2 = new File("F:\\filetest");
File file3 = new File("F:\\filetest\\myself");
File file4 = new File("F:\\filetest\\myself\\test.txt");
//判断文件是否存在
boolean b = file.exists();
System.out.println(b);//true
System.out.println(file1.exists());//true
System.out.println(file2.exists());//true
System.out.println(file3.exists());//false
//创建文件夹及文件
boolean b1 = file3.mkdirs();//或者file3.mkdir(创建一级目录)
System.out.println(b1);//true,成功创建文件夹(若存在则创建失败)
try {
boolean b2 = file4.createNewFile();//有异常要捕获或者抛出
System.out.println(b2);//成功创建文件(若存在则创建失败)
} catch (IOException e) {
e.printStackTrace();
}
//删除文件或者文件夹delete
boolean b3 = file4.delete();
System.out.println(b3);//成功删除test.txt
boolean b4 = file3.delete();//成功删除文件夹(注:只有文件夹为空的时候才能被删除)
}
}
FileDemo2
获得文件的路径-----------代码里有注释///
public class Demo2 {
public static void main(String[] args) throws Exception{
File file = new File("hello.txt");//相对路径,在项目下
System.out.println(file.getPath());//获得文件相对路径:hello.txt
System.out.println(file.getAbsolutePath());//获得文件绝对路径:d:\软件\IdeaProjects\qfstudy_08_09\hello.txt
System.out.println(file.getCanonicalPath());//获得文件的标准路径:D:\软件\IdeaProjects\qfstudy_08_09\hello.txt
//获得文件的父路径
File file1 = new File("F:\\filetest\\hao\\111.txt");
String parent = file1.getParent();
System.out.println(parent);
//在同级目录下创建文件hellojava.txt
File file2 = new File(parent, "hellojava.txt");
System.out.println(file2.createNewFile());//true成功创建
}
}
FileDemo3
对一个文件的各种判断
public class Demo3 {
public static void main(String[] args) {
File file = new File("F:\\filetest\\hao\\hellojava.txt");
File file1 = new File("F:\\filetest\\hao");
//判断一个File对象是否是文件夹isDirectory
System.out.println(file.isDirectory());//false不是文件夹
System.out.println(file1.isDirectory());//true是文件夹
//判断一个File对象是否是文件isFile
file.isFile();
//判断一个File对象是否是绝对路径
file.isAbsolute();
//判断一个File对象是否隐藏
file.isHidden();
//获得文件夹中所有的子文件和文件夹的路径(字符串形式)
String[] list = file1.list();
//(File对象形式)
File[] files = file1.listFiles();
System.out.println(Arrays.toString(files));
//对文件重命名(必须保证文件是存在的)
File file2 = new File("F:\\filetest\\hao\\hi.txt");
System.out.println(file.renameTo(file2));
System.out.println(file.getName());
}
}
FileTest
实现一个小案例-------递归实现文件夹的遍历和删除操作
public class Demo4 {
public static void main(String[] args) throws Exception{
File file = new File("F:\\filetest");
int level = 0;
bianliFile(file,level);
Thread.sleep(5000);
deleteFile(file);
System.out.println("删除成功");
}
public static void bianliFile(File file,int level){
level(level);
System.out.println(file.getName());
level++;
File[] files = file.listFiles();
if(files!=null&&files.length>0){
for (File file1 : files) {
if (file1.isDirectory()){//如果是文件夹则递归调用遍历方法
bianliFile(file1, level);
}else {
level(level);
System.out.println(file1.getName());
}
}
}
}
public static void level(int level){
for (int i = 0; i < level; i++) {
System.out.print("\t");
}
}
public static void deleteFile(File file){
File[] files = file.listFiles();
if(files!=null&&files.length>0){
for (File file1 : files) {
if (file1.isDirectory()){//如果是文件夹则递归调用删除方法
deleteFile(file1);
}else {
file1.delete();
}
}
}
file.delete();//子文件全部删除后可以把文件夹删除了
}
}
熟悉与掌握这几种对文件的操作对接下来学习流有一定的帮助!!!