File 类
File 表示一个 路径。 可以是文件 也可以是文件夹
File 类 在IO包下
三个构造方法 都是为了传入 路径
* File(String pathname):根据一个路径得到File对象
* File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
* File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
import java.io.File; public class demon2_file { public static void main(String[] args) { //demo1(); String parent = "F:\\Desktop\\java 笔记"; String child = "day19笔记.md"; File file3 = new File(parent, child); System.out.println(file3.exists() ); } public static void demo1() { File file = new File("F:\\Desktop\\java 笔记\\day19笔记.md"); // 反斜线 需要转义一下 System.out.println(file.exists()); File file2 = new File("xxx.txt"); System.out.println(file2.exists()); } }
常用方法:
创建:
* public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
* public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
* public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 创建多级文件夹
重命名: renameto 可改名,可剪切
*public boolean renameTo(File dest):把文件重命名为指定的文件路径 ######可改名,可剪切####
删除: delete
* public boolean delete():删除文件或者文件夹
判断功能:
isDirectory():判断是否是目录
isFile():判断是否是文件
exists():判断是否存在
canRead():判断是否可读
canWrite():判断是否可写
isHidden():判断是否隐藏
设置:
setReadable(True) :设置是否可读 windows默认所有文件都是可读的,Linux系统有区分
setWirtable(False) : 设置是否可写
获取功能:
length() : 获取字节数 。 将length() = 0 ,即清空文件了
listFiles() : 获取路径下所有的文件和文件夹对象 获取指定目录下的所有文件或者文件夹的File数组
list(): 获取指定目录下的所有文件或者文件夹的名称数组
getAbsolutePath():获取绝对路径
getPath():获取路径
getName():获取名称
lastModified():获取最后一次的修改时间,毫秒值
list():获取指定目录下的所有文件或者文件夹的名称数组
import java.io.File; import java.util.Scanner; public class test1 { /* * 从键盘录入一个文件夹, 统计该文件夹大小 */ public static void main(String[] args) { File dir = getFile(); System.out.println(getFileLength(dir)); } private static long getFileLength(File dir) { long len = 0; File[] farr = dir.listFiles(); // 获取所有文件和文件夹 for (File subFile : farr) { if (subFile.isFile()) { len = len + subFile.length(); } else { len = len + getFileLength(subFile); //递归 } } return len; } public static File getFile() { Scanner s1 = new Scanner(System.in); System.out.println("请输入一个文件夹路径"); while(true){ String path = s1.nextLine(); File f1 = new File(path); if (f1.exists()) { if (f1.isFile()) { System.out.println("你输入的是一个文件路径,请重新输入一个文件夹路径"); }else{ return f1; } }else { System.out.println("你输入的路径不存在,请重新输入一个文件夹路径"); } } } }
import java.io.File; public class test2 { public static void main(String[] args) { File dir = test1.getFile(); deleteFile(dir); } private static void deleteFile(File dir) { // 删除一个文件夹 File[] subFiles = dir.listFiles(); for (File subFile : subFiles) { if (subFile.isFile()) { subFile.delete(); } else { deleteFile(subFile); // 递归 } } dir.delete(); } }