File概述
- File类和流无关,不能通过该类完成文件的读写。
- File类是文件和目录的抽象表示形式。
- File代表的是硬盘上的目录与文件。
File常用方法
构造方法:
第一种:File f1 = new File("F:/temp");
第二种:构造方法的第一个参数指定文件夹
File f2 = new File("F:/temp", "sub1");
第三种:构造方法的第一个参数是一个指向文件夹的File对象
File f3 = new File(f2, "sub2");
其他方法:
import java.io.File;
public class File01 {
public static void main(String[] args) {
File f = new File("F:/BaiduYunDownload/小森林.冬春篇.BD1280高清日语中字.mp4");
//判断是否为目录
System.out.println(f.isDirectory());
//判断是否是文件
System.out.println(f.isFile());
//获取文件的绝对路径
System.out.println(f.getAbsolutePath());
//获取文件的父路径
System.out.println(f.getParent());
//获取文件名
System.out.println(f.getName());
//获取文件长度
System.out.println(f.length());
//获取文件的上次修改时间
System.out.println(f.lastModified());
//判断文件是否为隐藏文件
System.out.println(f.isHidden());
File file = new File("F:/temp/test");
//判断文件/目录是否存在
if (!file.exists()){
//如果不存在则创建
file.mkdir();
}
if (file.isDirectory()){
//列出当前目录的子文件
File[] files = file.listFiles();
for (File f2 : files) {
if (f2.getAbsolutePath().endsWith(".txt")){
System.out.println(f2.getAbsolutePath());
}
}
}
//删除文件
file.delete();
}
}
文件/文件夹的复制
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test05 {
public static void main(String[] args) {
//把java1文件夹中的内容复制到java2中
copyDir( "d:/java1" , "d:/java2");
}
//文件夹的复制
private static void copyDir(String srcFoldername, String destFoldername) {
//遍历srcFoldername源文件夹中的内容
File srcDir = new File(srcFoldername);
//显示源文件夹的内容
File[] listFiles = srcDir.listFiles();
for (File file : listFiles) {
//如果file是文件, 就直接复制
if (file.isFile()) {
//构建目标文件名
File destfile = new File(destFoldername, file.getName());
copyFile( file, destfile);
}else{
//如果是文件夹, 先创建目标文件夹, 再把子文件夹的内容复制
File destDir = new File(destFoldername, file.getName());
destDir.mkdir(); //创建文件夹
//把file子文件夹的内容复制到destDir文件夹中
copyDir(file.getAbsolutePath(), destDir.getAbsolutePath()); //递归调用
}
}
}
//文件复制
private static void copyFile(File srcfile, File destfile) {
try(
FileInputStream fis = new FileInputStream(srcfile);
FileOutputStream fos = new FileOutputStream(destfile);
) {
byte [] bytes = new byte[1024];
int len = fis.read(bytes);
while( len != -1 ){
fos.write(bytes, 0, len);
len = fis.read(bytes);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}