Java的File文件流
File文件流
File类:一个File类对象可以代表具体的一个文件
创建文件或文件夹
-
创建文本文件
- createNewFile();
-
创建文件夹
- mkdir();
-
创建多级文件夹
- mkdirs();
package com.cnblogs;
import java.io.File;
import java.io.IOException;
public class Application {
public static void main(String[] args) {
//创建file对象
File file1 = new File("E:\\study\\1.txt");
//创建文件1.txt
try {
//创建一个新的普通文件,存在文件就不创建,返回0(文件创建失败)
boolean flog1 = file1.createNewFile();
System.out.println(flog1 ? "文件创建成功!" : "文件创建失败!");
//创建一个新的文件夹,存在文件夹就不创建,返回0(文件创建失败)
File file2 = new File("E:\\study\\qi");
boolean flog2 = file2.mkdir();
System.out.println(flog2 ? "文件夹创建成功!" : "文件夹创建失败!");
//创建多级文件夹,存在多级文件夹就不创建,返回0(文件创建失败) 有一级文件夹不同就能创建成功返回1
File file3 = new File("E:\\study\\b\\d");
boolean flog3 = file3.mkdirs();
System.out.println(flog3 ? "多级文件夹创建成功!" : "多级文件夹创建失败!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
删除文件或文件夹
- 删除文件或者文件夹
- delete();
package com.cnblogs;
import java.io.File;
public class Application {
public static void main(String[] args) {
File file1 = new File("E:\\study\\1.txt");
boolean flog1 = file1.delete();
System.out.println(flog1 ? "删除成功!" : "删除失败!");
}
}
查询文件
-
判断某个路径的文件是否存在
- exists();
-
获取文件大小
- length();
-
获取文件名
- getName();
-
获取文件路径
- getPath();
package com.cnblogs;
import java.io.File;
public class Application {
public static void main(String[] args) {
try {
File file1 = new File("E:\\study\\app");
boolean flog1 = file1.exists();
if(flog1){
System.out.println("文件存在,不需要创建!");
}else{
file1.mkdir();
System.out.println("文件创建成功!");
}
File file2 = new File("E:\\study\\21.txt");
boolean flog2 = file2.createNewFile();
System.out.println(flog2 ? "文件创建成功!" : "文件创建失败!");
long size = file2.length();
//刚刚创建问输出为0,在文件中输入abc后输出3,文件中重新输入中国后输出为6
System.out.println("size=" + size);
//获取文件名
String name = file2.getName();
System.out.println(name);//21.txt
//获取文件的路径
String path = file2.getPath();
System.out.println(path);//E:\study\21.txt
} catch (Exception e) {
e.printStackTrace();
}
}
}
补充方法
package com.cnblogs;
import java.io.File;
/*
本类用于测试file的常用方法
*/
public class TestFile {
public static void main(String[] args) {
File file = new File("E:\\ready\\1.txt");
System.out.println(file.isFile());//这个是文件吗 true
System.out.println(file.isDirectory());//这个是文件夹吗 false
System.out.println(file.getParent());//获取父级路径 E:\ready
System.out.println(file.getAbsoluteFile());//获取绝对路径 E:\ready\1.txt
}
}
遍历文件夹(递归)
package com.cnblogs;
import java.io.File;
public class Application {
public static void main(String[] args) {
Application.showFile("D:\\");
}
public static void showFile(String pathname){
File file1 = new File(pathname);
boolean flag1 = file1.isDirectory();
if(flag1){
File[] files = file1.listFiles();
for(int i = 0 ; files != null && i < files.length; i++){
boolean flog2 = files[i].isDirectory();
if(flog2){
showFile(files[i].getPath());
}else{
String filePath = file1.getPath();
System.out.println("普通文件 -->" + filePath);
}
}
}else{
String filePath = file1.getPath();
System.out.println("普通文件 -->" + filePath);
}
}
}