前言
File 单词意思我们可以理解成文件。 在java中有一个File的类,能通过这个类,来实现对操作系统中文件或者文件夹的增删改查。而文件操作就是用来对文件进行管理和操作的。File相关知识
1.路径分隔符
在日常生活中,常见的D:\learn\loveyou 这是windows系统的路径分隔符,起到分割路径的作用。
在D盘创建一个haha的文件夹,在文件夹中创建一个123.txt的文件
File file = new File(“D:\haha\123.txt”);
注意 在windows系统中 路径分隔符为 D:\haha\123.txt 但是 写代码的时候 要写成 “D:\haha\123.txt”
在其他的操作系统中路径分割符为 / 并且 windows 也支持 /
我们java 开发环境一般是windows 但是生产环境一般是 Linux
所以 我们以后写路径全部写成 /
File file = new File(“D:/haha/123.txt”);
这里分隔符也可以用File.separator
@Test
public void test1(){
File file = new File("D:"+File.separator+"haha"+File.separator+"123.txt");
// ;
System.out.println( File.pathSeparator );
// \
System.out.println( File.separator );
}
2.新建文件夹
@Test
public void test1() throws Exception{
File file = new File("D:/haha/456.txt");
file.createNewFile();
File file1 = new File("D:/haha/heheh");
file1.mkdir();
File file2 = new File("D:/haha/a/b/c/d/e/f/g/h");
file2.mkdirs();
}
3.修改或者重命名
@Test
public void test1() throws Exception{
File f = new File("D:/haha/789.txt");
File f1 = new File("D:/aaa.txt");
f.renameTo( f1 );
}
4.删除
@Test
public void test1() throws Exception{
File f = new File("D:/haha/123.txt");
f.delete();
}
5.递归
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
public static void deleteFile(File target){
File[] files = target.listFiles();
for (File file : files) {
if ( file.isDirectory() ){
File[] files1 = file.listFiles();
for (File file1 : files1) {
if(file1.isDirectory()){
file1
}else{
file1.delete();
}
}
}else{
file.delete();
}
}
}
public static void deleteFile(File target){
File[] files = target.listFiles();
for (File file : files) {
if ( file.isDirectory() ){
deleteFile(file);
}else{
file.delete();
}
}
}
public class HahaUtil {
/**
*
* @param
* @return
*/
public static int getSum(int a){
int sum = 0;
if( a == 1 ){
return 1;
}else{
sum = a + getSum( a-1 );
}
return sum;
}
}
@Test
public void test1() throws Exception{
int sum = HahaUtil.getSum(3);
System.out.println(sum);
}
5.查
@Test
public void test1() throws Exception{
File file = new File("D:/haha/123.txt");
String absolutePath = file.getAbsolutePath();
System.out.println(absolutePath);
File absoluteFile = file.getAbsoluteFile();
System.out.println(absoluteFile);
String name = file.getName();
System.out.println(name);
String parent = file.getParent();
System.out.println(parent);
File parentFile = file.getParentFile();
System.out.println(parentFile);
System.out.println(parentFile.getName());
//获取 文件夹的子文件/文件夹
File[] files = file.listFiles();
boolean directory = file.isDirectory();
System.out.println(directory);
boolean f = file.isFile();
boolean b = file.canWrite();
boolean b1 = file.canRead();
boolean b2 = file.canExecute();
long length = file.length();
long l = file.lastModified();
System.out.println(length);
System.out.println(l);
Date date = new Date(1617676281583L);
System.out.println(date);
}
@Test
public void test1() throws Exception{
File file = new File("D:/haha/123.txt");
file.setLastModified(1000);
file.setReadable(false);
file.setReadOnly();
file.setWritable(true);
}