目录
1.File
1.1File类概述和构造方法
File:它是文件和目录路径名的抽象表示
文件和目录是可以通过File封装成对象的
对于File而言,其封装的并不是一个直正存在的文件,仅仅是一个路径名而已,它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的构造方法:
package zyy07;
import java.io.File;
public class Demo {
public static void main(String[] args) {
//File(String pathname)
File f1=new File("E:\\IdeaProject\\JavaSE_Code");
System.out.println(f1);
//File(String parent,String child)
File f2=new File("E:\\IdeaProject","JavaSE_Code");
System.out.println(f2);
//File(File parent,String child)
File f3=new File("E:\\IdeaProject");
File f4=new File(f3,"JavaSE_Code");
System.out.println(f4);
}
}
1.2File类创建功能
package zyy07;
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//createNewFile()创建文件
//如果文件不存在就创建文件,并返回true
//如果文件存在就不创建文件,并返回false
File f1=new File("E:\\zyy\\java.txt");
System.out.println(f1.createNewFile());
System.out.println("*********");
//mkdir()创建目录
//如果目录不存在就创建目录,并返回true
//如果目录存在就不创建目录,并返回false
File f2=new File("E:\\zyy\\JavaSE");
System.out.println(f2.mkdir());
System.out.println("*********");
//mkdirs()创建多级目录
//如果目录不存在就创建目录,并返回true
//如果目录存在就不创建目录,并返回false
File f3=new File("E:\\zyy\\JavaWEB\\HTML");
System.out.println(f3.mkdirs());
}
}
1.3File类判断和获取功能
package zyy07;
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//创建对象
File f1=new File("E:\\zyy\\java.txt");
//isDirectory()测试是否是目录
System.out.println(f1.isDirectory());
//f1.isFile()测试是否为文件
System.out.println(f1.isFile());
//f1.exists()测试是否存在
System.out.println(f1.exists());
//getAbsolutePath()返回路径名的绝对路径名字符串
System.out.println(f1.getAbsolutePath());
//getPath()将此抽象路径名转换为路径名字符串
System.out.println(f1.getPath());
//getName()返回此抽象路径名表示的文件或路径名称
System.out.println(f1.getName());
//list()
File f2=new File("E:\\zyy");
String[] StrArr = f2.list();
for(String str:StrArr){
System.out.println(str);
}
System.out.println("*************");
//listFiles()
File[] fileArr = f2.listFiles();
for(File file:fileArr){
if(file.isFile()){
System.out.println(file.getName());
}
}
}
}
1.4File类删除功能
绝对路径和相对路径的区别
绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\\zyy\java.txt相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\\java.txt
删除目录时的注意事项:
如果一个目录中有内容(目录,文件),不能直接删除。应该先删除目录中的内容,最后才能删除目录
package zyy07;
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//创建对象
File f1=new File("E:\\IdeaProject\\JavaSE_Code\\practise\\java.txt");
//在当前模块创建java.txt文件
System.out.println(f1.createNewFile());
//删除当前模块目录下java.txt文件
System.out.println(f1.delete());
//在当前模块目录下创建zz目录
File f2=new File("E:\\IdeaProject\\JavaSE_Code\\practise\\zz");
System.out.println(f2.mkdir());
//删除当前模块目录下的目录
System.out.println(f2.delete());
//在当前模块下创建一个目录zz,然后在该目录下创建一个文件Java.txt
File f3=new File("E:\\IdeaProject\\JavaSE_Code\\practise\\zz");
System.out.println(f3.mkdir());
File f4=new File("E:\\IdeaProject\\JavaSE_Code\\practise\\zz\\java.txt");
System.out.println(f4.createNewFile());
//删除当前模块下的目录zz
System.out.println(f4.delete());
System.out.println(f3.delete());
}
}
1.5递归
递归概述:
以编程的角度来看,递归指的是方法定义中调用方法本身的现象
递归解决问题的思路:
把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
递归解决问题要找到两个内容:
递归出口:否则会出现内存溢出
递归规则:与原问题相似的规模较小的问题
package zyy04;
public class Demo {
public static void main(String[] args) {
int[] arr=new int[20];
arr[0]=1;
arr[1]=1;
System.out.println(f(10));
}
//递归
public static int f(int n){
if(n==1||n==2){
return 1;
}
return f(n-1)+f(n-2);
}
}