File
1统计文件夹大小:
package com.heima.test;
public class Test1 {
public static void main(String[] args) {
File dir = new File("F:\\day06");
Ststem.out.println(dir.length()); //直接获取文件夹是0
//File dir = getDir();
//System.out.println(getFileLength(dir));
}
}
public static File getDir() {
//1,创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println{"请输入一个文件夹路径:");
//2.定义一个无限循环
while(true) {
String line = sc.nextLine();
File dir = new File(line);
//4.对Flie对象判断
if(!dir.exists()) {
System.out.println("你录入的文件夹路径不存在,请输入一个文件夹路径":);
}else if(dir.isFile()) {
System.out.println("你录入的是文件路径,请输入一个文件夹路径":);
}else {
//5,将文件夹路径对象返回
return dir;
}
}
}
public static long getFileLength(File dir) {
//1定义一个求和变量
long len = 0;
//2获取该文件夹下所有的文件和文件夹listFiles();
File[] sudFiles = dir.listFiles();
//3遍历数组
for (File subFile : subFiles) {
//4判断是文件就计算大小并累加
if(subFile.isFile()) {
len = len + subFile.length();
//5判断是文件夹。递归调用
}else {
len = len + getFileLength(subFile);
}
}
return len;
}
2删除文件夹:
package com.heima.test;
public class Test1 {
public static void main(String[] args) {
File dir = Test1.getDir(); //获取文件夹路径
deleteFile(dir);
}
public static void deleteFile(File dir) {
//1获取该文件夹下的所有的文件和文件夹
File[] subFiles = dir.listFiles();
//2遍历数组
for (File subFile : subFiles) {
//判断是文件直接删除
if(subFile,isFile()) {
subFile.delete();
//如果是文件夹递归调用
}else {
deleteFlie(subFile);
}
}
//5循环结束后把空文件夹删掉
dir.delete();
}
}
3拷贝
package com.heima.test;
public class Test3 {
public static void main(String[] args) {
File src = Test1.getDir();
File dest = Test1.getDie();
if(src.equals(dest)) {
System.out.println("目标文件夹是原文件夹的子文件夹");
}else {
copy(src,dest);
}
}
/*
*把其中一个文件夹中拷贝到另一个文件夹中
*1返回类型void
*2参数列表File src ,File dest
*/
public static void copy(File src, File dest) {
//1在目标文件夹中创建原文件夹
File newDir = new File(dest, src,getName());
newDir,mkdir();
//获取原文件夹在所有的文件和文件夹,存储在File数组中
File[] sudFile = src.listFiles()
//遍历数组
for (File subFile : subFile) {
//如果是文件就用io流读写
if(subFile.isFile()) {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(newDir,subFile.getName())));
int b;
while((b = bis.read()) != -1) {
bos.write(b);
}
bis.close();
bos.close();
//如果是文件夹就用递归调用
}else {
copy(subFile,newDir);
}
}
}
}
4打印
package com.heima.test;
public class Test4 {
public static void main(String[] args) {
File dir = Test1.getDir();
printLev(dir,0);
}
public static void printLev(File dir,int lev) {
File[] subFile : subFiles();
for (File subFile : subFiles) {
for(int i = 0; i <= lev; i++) {
System.out.println("\t")
}
System.out.println(subFile);
if(subFile.isDirectory()) {
printLev(subFile,lev + 1);
}
}
}
public class Test5 {
public static void main(String[] args) {
int[] arr = new int[8];
arr[0] = 1;
arr[1] = 1;
for(int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
System.out.println(arr[arr.length - 1]);
}
public static int fun(int num) {
if(num == 1 || nwm == 2) {
return 1;
}else {
return fun(nwm - 2) + fun(num - 1);
}
}
}