FileTest1
package IO;
//首先引用
import java.io.File;
public class FileTest1 {
public static void main(String[] args) {
//new File("文件路径");
//另一种写法:File file1 = new File ("D:/code1/ab.txt");
// File file1 = new File ("D:\\code1\\ab.txt");
File file1 = new File ("D:"+File.separator+"code1"+File.separator+"ab.txt");
System.out.println(file1.length());//文件大小
File file2 = new File("D:/code1");
System.out.println(file2.length());//文件夹本身的大小,不包括它里面的内容
//File对象可以指代一个不存在的文件路径
File file3 =new File("D:/code1/abcd.txt");
System.out.println(file3.length());
System.out.println(file3.exists());
//相对路径(重点):不带盘符,默认是直接去工程下面寻找文件。
}
}
运行结果:
FileTest2
package IO;
import java.io.File;
import java.text.SimpleDateFormat;
public class FileTest2 {
public static void main(String[] args) {
//1.创建一个文件对象
File f1 =new File("D:/code1/ab.txt");
//2.public boolean exists():判断当前文件对象,对应的文件路径是否存在,并返回false或者true
System.out.println(f1.exists());
//3.public boolean isFile():判断当前文件是否指代的是否是文件
System.out.println(f1.isFile());
//4.public boolean isDirectory():判断当前文件是否是文件夹
System.out.println(f1.isDirectory());
//5.public String getName():获取文件名
System.out.println(f1.getName());
//6.判断文件本身的大小
System.out.println(f1.length());
//7.public long lastModified():获取文件最后的修改时间
long time = f1.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(time));
//8.public String getPath():获取创建文件对象时,使用的路径
File f2 = new File("D:\\code1\\ab.txt");
File f3 = new File("untitled\\src\\itheima.txt");
System.out.println(f2.getPath());
System.out.println(f3.getPath());
//9.public String getAbsolutePath():获取绝对路径
System.out.println(f2.getAbsolutePath());
System.out.println(f3.getAbsolutePath());
}
}
运行结果:
FileTest3:
package IO;
import java.io.File;
import java.io.IOException;
public class FileTest3 {
public static void main(String[] args) throws IOException {
//1.public boolean creatNewFile():创建一个新文件,创建成功返回true
File f1 = new File("D:/code1/ha.txt");
System.out.println(f1.createNewFile());
//2.public boolean mkdir():用于创建文件夹,只能创建一级文件夹
File f2 = new File("D:/code1/aaa");
System.out.println(f2.mkdir());
//3.public boolean mkdirs():用于创建文件夹,可以创建多级文件
File f3 = new File("D:/code1/bbb/ccc/ddd");
System.out.println(f3.mkdirs());
//4.public boolean delete():删除文件,或者空文件,不能删除非空文件夹(安全性考虑/后面会学)
System.out.println(f1.delete());
System.out.println(f2.delete());
File f4 = new File("D:/code1");
System.out.println(f4.delete());
}
}
FileTest4
package IO;
import java.io.File;
import java.util.Arrays;
public class FileTest4 {
public static void main(String[] args) {
//1.Public String[] list():获取当前目录下所有的”一级文件名称“到一个字符串数组中去返回
File f1 = new File("D:/code1");
System.out.println(f1.list());
String[]names = f1.list();
for (String name : names) {
System.out.println(name);
}
//2.public File listFiles():(重点)获取当前目录下所有的”一级文件对象“到一个文件对象数组中去返回
File[] files = f1.listFiles();
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
//当主调是文件,或者路径不存在时,返回null
File f = new File("D:/codew1/ab.txt");
File[] files1 = f.listFiles();//定义了一个文件对象数组去接文件对象
System.out.println(files1);
//当主调是空文件夹时,返回一个长度为0的数组
File ff = new File("D:/code1/aa");
File[] files2 = ff.listFiles();
System.out.println(Arrays.toString(files2));//Arrays.toString(数组名):输出数组的内容,而不是数组的地址
}
}
运行结果:
递归RecursionTest1
package IO;
public class RecursionTest2 {
public static void main(String[] args) {
System.out.println(f(5));
System.out.println(j(5));
}
public static int f(int n){
// 终结点
if(n==1){
return 1;
}else{
return f (n-1)*n;
}
}
/***
* 递归算法的三要素:
* 递归的公式:f(n)=f(n-1)*n;
* 递归的终结点:f(1)[
* 递归的方向必须走向终结点
*/
public static int j(int n){
if (n==1){
return 1;
}else{
return j(n-1)+n;
}
}
}
运行结果:
递归实现文件搜索RecuTest2
package IO;
import java.io.File;
public class RecursionTest3 {
public static void main(String[] args) {
searchFile(new File("D:/"), "死别.mp4");
}
/**
* 去目录下搜索某个文件
*
* @param dir 目录
* @param fileName 要搜索的文件名称
*/
public static void searchFile(File dir, String fileName) {
//1.把非法情况拦截
if (dir == null || !dir.exists() || dir.isFile()) {
return;
}
//2.dir不是null,存在,一定是目录对象
//获取当前目录下的全部一级文件对象
File[] files = dir.listFiles();
//3.判断[当前目录]下是否存在一级文件对象,以及是否可以拿到一级文件对象
if (files != null && files.length > 0) {
//4.遍历全部一级文件对象
for (File file : files) {
//5.判断文件是否是文件,还是文件夹
if (file.isFile()) {
//是文件,判断文件名是否是我们寻找的
if (file.getName().contains(fileName)) {
System.out.println("Found it:" + file.getAbsolutePath());
break;
}
} else {
//是文件夹,继续重复这个过程
searchFile(file, fileName);
}
}
}
}
}
运行结果:
改变文件的名称
package IO;
import java.io.File;
public class Test {
public static void main(String[] args) {
//1.定位文件夹
File dir = new File("D:\\code1\\bbb\\ccc\\ddd\\文本");
//2.拿到全部的文本,一级文件对象
File[] txts = dir.listFiles();
//3.遍历一个个找到要改的那个文件
for (File txt : txts) {
//4.
String name = txt.getName();
String index = name.substring(0, name.indexOf("、"));//包前不包后
System.out.println(index);
String lastName = name.substring(name.indexOf("、"));
System.out.println(lastName);
String newName = (Integer.valueOf(index)+18)+lastName;//把index索引号变成整数
//5.正式改名
txt.renameTo(new File(txt.getParent(),newName));//拿到父路径来改新名字
}
String[] txtlist = dir.list();
System.out.println(txtlist);
for (String s : txtlist) {
System.out.println(s);
}
}
}