File
构造方法
package gdpu;
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
// public File(String pathname)
//通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例
//文件没有生成
File file1 = new File("F:\\zwm");
// public File(String parent,String child)
//
File file2 = new File("F:\\zwm", "file.txt");
//
File
}
}
方法
1.创建目录
public class FileDemo2 {
public static void main(String[] args) {
File file1 = new File("F:\\zwm\\gdpu");
//mkdir() 不存在->创建目录,存在->创建目录
System.out.println("创建目录" + file1.mkdir());
}
}
2.创建多级目录
public class FileDemo2 {
public static void main(String[] args) {
File file3 = new File("F:\\zwm\\gdpu\\gdpu2");
System.out.println("创建文件" + file3.mkdirs());
}
}
3.创建文件
public class FileDemo2 {
public static void main(String[] args) {
File file2 = new File("F:\\zwm\\gdpu\\File1.txt");
try {
//createNewFile() 不存在->创建,存在-.不创建
System.out.println("创建文件" + file2.createNewFile());
} catch (IOException e) {
e.printStackTrace();
}
}
}
4.删除文件或目录
public class FileDemo3 {
public static void main(String[] args) {
File file1 = new File("F:\\zwm\\gdpu\\File1.txt");
System.out.println("删除文件" + file1.delete());
// 相对路径
File file3 = new File("cn\\edu\\gdpu");
System.out.println("创建目录");
file3.mkdirs();
File file4 = new File("cn");//当前项目的根目录下
System.out.println("删除多级目录" + file4.delete());
//删除多级目录只能一级一级删,可以用循环删多级
}
}
5.更改文件名
public class FileRename {
public static void main(String[] args) {
File file1 = new File("F:\\zwm\\gdpu\\File1.txt"); //源文件
File file2 = new File("F:\\zwm\\gdpu\\FileRename.txt");//更名
System.out.println("重命名" + file1.renameTo(file2));
}
}
6.剪切
public class FileRename {
public static void main(String[] args) {
/*
*
* 更名前的和更名后相同目录,如果不在同一目录相当于剪切
*
*
* */
File file1 = new File("1.jpg"); // 源文件
File file2 = new File("e:\\1.jpg");// 更名
System.out.println("重命名" + file1.renameTo(file2));
}
}
7.判断属性
/*
* isDirectory() 是文件夹?
* isFile() 是文件?
* isHidden() 隐藏了吗?
*
*/
public class FileJudge {
public static void main(String[] args) {
File file2 = new File("F:\\zwm", "gdpu");
System.out.println("是文件夹吗?:" + file2.isDirectory());
System.out.println("是文件?:" + file2.isFile());
System.out.println("存在吗?:" + file2.exists());
}
}
8.路径
//String[] list()
//返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
public class FileHighGet {
public static void main(String[] args) {
File file1 = new File("F:\\zwm");
String[] strArr = file1.list();// 返回具体的目录
for (String s : strArr) {
System.out.println(s);
}
System.out.println("**********");
File[] strArr2 = file1.listFiles();
for (File s2 : strArr2) {
System.out.println(s2);// 返回目录的路径
System.out.println(s2.getName());// getName()返回文件或目录的名称,如果路径名名称序列为空,则返回空字符串。
}
}
}
Outer:
ColorUI-master (1) //返回String
Develop
QQfile
wordpress-5.2.4-zh_CN
个人文件
卸载服务.CMD
微信文件备份
相片备份
视频
计导网站
资源
音乐
**********
F:\zwm\ColorUI-master (1) //System.out.println(s2); 返回目录的路径
ColorUI-master (1) //System.out.println(s2.getName()); getName()返回文件或目录的名称
F:\zwm\Develop
Develop
F:\zwm\QQfile
QQfile
F:\zwm\wordpress-5.2.4-zh_CN
wordpress-5.2.4-zh_CN
F:\zwm\个人文件
个人文件
F:\zwm\卸载服务.CMD
卸载服务.CMD
F:\zwm\微信文件备份
微信文件备份
F:\zwm\相片备份
相片备份
F:\zwm\视频
视频
F:\zwm\计导网站
计导网站
F:\zwm\资源
资源
F:\zwm\音乐
音乐
作业
寻找D盘下的所有java文件,用递归和非递归两种方法
思路:使用list将目录储存起来,在逐个遍历list里面的目录,如果是目录又将加入list,不是目录,判断是否是java文件
非递归
package homework;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class NotRecursion {
public static void main(String[] args) {
File file = new File("D:\\JavaFile");
List<File> list = new ArrayList<File>();
if (file.isDirectory()) {
list.add(file);
} else if (file.isFile() && file.getName().endsWith(".java")) {
System.out.println(file);
}
while (!list.isEmpty()) {
File file2 = list.remove(0);
File[] fileArr = file2.listFiles();
for (int i = 0; i < fileArr.length; i++) {
if (fileArr[i].isDirectory()) { // 如果是目录,加入list
list.add(fileArr[i]);
} else if (fileArr[i].isFile() && fileArr[i].getName().endsWith(".java")) {
System.out.println(fileArr[i]);
}
}
}
}
}
递归
package homework;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class recursion {
public static void main(String[] args) {
File file = new File("D:\\JavaFile");
recursionFind rf = new recursionFind();
rf.Find(file);
}
}
class recursionFind {
List<File> list = new ArrayList<File>();
public File Find(File path) {
File[] fileArr = path.listFiles();
for (File f : fileArr) {
if (f.isDirectory()) {
list.add(f);
} else if (f.isFile() && f.getName().endsWith(".java")) {
System.out.println(f);
}
}
if (!list.isEmpty()) {
return new recursionFind().Find(list.remove(0));
}
return path;
}
}