File文件操作类
基本文件操作
方法 | 说明 |
---|---|
public boolean exists() | 测试指定路径中文件或目录是否存在 |
public boolean isDirectory() | 判定一个文件是目录 |
public boolean isFile() | 判定是否是文件 |
public boolean delete() | 删除文件 |
public boolean createNewFile() throws IOException | 创建一个新文件 |
检测文件是否存在
public void test1(){
String pathName = "E:\\java13\\io-study\\res/demo.txt";
File file = new File(pathName);
boolean res = file.exists();
System.out.println("文件" + pathName + "是否存在:" + res);
}
//输出结果:
//文件E:\java13\io-study\res/demo.txt是否存在:false
检测是否是目录,是否是文件并且删除
import java.io.File;
public class FileDemo {
public static void main(String[] args){
String path = "E:\\java13\\file\\";
String name = "demo.txt";
String pathname = path + name;
File file = new File(pathname);
boolean res = file.exists();
System.out.println("文件" + pathname + "是否存在: " + res);
res = file.isDirectory();
System.out.println("文件" + pathname + "是否是目录: " + res);
res = file.isFile();
System.out.println("文件" + pathname + "是否是文件: " + res);
file.delete();
if(!file.exists()){
System.out.println("删除文件成功!");
}
else{
System.out.println("删除文件失败!");
}
}
}
//输出结果:
//文件E:\java13\file\demo.txt是否存在: true
//文件E:\java13\file\demo.txt是否是目录: false
//文件E:\java13\file\demo.txt是否是文件: true
//删除文件成功!
创建新文件
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String new_name = "demo1.txt";
String pathname = path + new_name;
File file = new File(pathname);
if(!file.exists()){ //注意'!', 表示取反
try {
//有创建失败的风险,需要捕捉异常,异常如果不了解,可以先使用,不必关心细节
file.createNewFile();
}catch (IOException e){ //文件部分异常,常见为IOException
System.out.println("文件" + pathname + "创建失败");
//e.printStackTrace();
}
}
else{
System.out.println("文件" + pathname + "已经存在,不需创建");
}
}
}
编写文件的基本操作
如果文件不存在,则创建,存在则删除
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String new_name = "demo.txt";
String pathname = path + new_name;
File file = new File(pathname);
if(file.exists()){
//文件存在,删除
file.delete();
System.out.println("文件" + pathname + "存在,删除之");
}
else{
//文件不存在,创建
try {
file.createNewFile(); //有创建失败的风险,需要捕捉异常
System.out.println("文件" + pathname + "不存在,创建之");
}catch (IOException e){ //文件部分异常,常见为IOException
System.out.println("文件" + pathname + "创建失败");
e.printStackTrace();
}
}
}
}
目录操作
方法 | 说明 |
---|---|
public boolean mkdir() | 创建一个空目录 |
public boolean mkdirs() | 创建目录 |
public String getParent() | 取得父路径 |
public File getParentFile() | 取得父File对象 |
创建指定一个或者多个目录的路径
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String dir_name = "demo_dir"; //想要创建的目录
//String dir_name = "demo_dir\\dir1\\dir2\\dir3"; //想要创建的目录路径
String pathname = path + dir_name;
File file = new File(pathname);
if(!file.exists()){
file.mkdir(); //创建一个空目录
//file.mkdirs(); //创建一个可能具有多个目录的路径
}
else{
System.out.println("路径已经存在,不需创建");
}
}
}
获取父路径
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String dir_name = "demo_dir\\dir1\\dir2\\dir3";
String pathname = path + dir_name;
File file = new File(pathname);
System.out.println(file.getParent());
}
}
//结果:
//E:\java_code\file\demo_dir\dir1\dir2
获取父目录 File 对象,并在父目录下,创建文件demo.java
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String dir_name = "demo_dir\\dir1\\dir2\\demo.java";
String pathname = path + dir_name;
File file = new File(pathname);
File pfile = file.getParentFile(); //获取父目录File对象
if(!pfile.exists()){//检测路径是否存在,不存在创建
pfile.mkdirs();
//获取File对象的绝对路径,后面学,这个先用起来
System.out.println("路径" + pfile.getAbsolutePath() + "不存在,创建");
}
if(!file.exists()){
file.createNewFile();
}
}
}
//结果:
//路径E:\java_code\file\demo_dir\dir1\dir2不存在,创建
文件属性操作
方法 | 说明 |
---|---|
public long length() | 取得文件大小(字节) |
public long lastModified() | 最后一次修改日期 |
取得文件信息
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) throws IOException {
String path = "E:\\java_code\\file\\";
String name = "demo.txt";//可以替换成你想检测的文件
String pathname = path + name;
File file = new File(pathname);
if(!file.exists()){
file.createNewFile();
}
System.out.println("文件 " + name + "size : " + file.length());
System.out.println("文件 " + name + "最近修改时间: " + new
Date(file.lastModified()));
}
}
//结果:
//文件 demo.txtsize : 3
//文件 demo.txt最近修改时间: Sun Aug 11 15:50:47 CST 2019
其他操作
方法 | 说明 |
---|---|
public File[] listFiles() | 列出一个目录指定的全部组成 |
列出desktop中的全部组成
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) throws IOException {
// 要操作的文件
File file = new File("C:\\Users\\whb\\Desktop");
// 保证是个目录且存在
if (file.exists() && file.isDirectory()) {
//列出目录中的全部内容
File[] result = file.listFiles();
for(File file2 : result){
System.out.println(file2);
}
}
}
}