参考:https://blog.csdn.net/wenzhi20102321/article/details/52582705
问题一:在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目
录IOTest,之后将HelloWorld.txt移动到IOTest目录下去;之后遍历IOTest这个目录下的文
件
/**
* @author LvGJ
* 1. 首先遇到的第一个问题:我的电脑只有C盘,但是C盘根目录不允许创建,所以需要换地方,我选择了其他位置,地址需要进行更改,注意使用双斜杠\\!
* 2. 使用New File(textName)时,也会创建文件,创建文件的位置是这个项目的根目录,比如我的这个Java_IOTest项目在WorkPlace里面,那么我的Hello文件就在Workplace/Java_IOTest/里面
* 3. renameTo(File)的使用
* 4. 对于目录可以使用file.list()返回一个String[] 遍历得到目录
* 5. 判断文件使用isFile(),目录使用isDirectory()
* 6. 创建目录使用mkdirs();
*/
public class Pratice1 {
public static void main(String[] args) {
//创建文件
File file = new File("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016","HelloWorld.txt");
//Test 根目录
File file22 = new File("Hello.txt");
boolean isCreate;
try{
isCreate = file.createNewFile();
if(isCreate){
System.out.println("创建文件成功!");
}else{
System.out.println("创建文件失败!文件已经存在!");
}
}catch(IOException e){
System.out.println("创建文件失败!");
}
if(file.isFile()){
System.out.println("这是一个文件!");
}else{
System.out.println("这是一个目录");
}
File file2 = new File("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016\\IOTest");
file2.mkdirs();
/**
* File进行移动使用renameTo(File)里面是File类,
* 并且包括了该文件的名字
*/
File file3 = new File(file2.getPath()+"\\"+file.getName());
//进行移动
if(file.renameTo(file3)){
System.out.println("文件移动成功!"+file.getAbsolutePath());
}else{
System.out.println("文件移动失败");
}
//遍历IOTest目录下的文件
String[] arr = file2.list();
for(String s:arr){
System.out.println(s);
}
}
}
问题二:递归实现输入任意目录,列出文件以及文件夹
package FileUtile;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author LvGJ
* 这是一个工具类,这个工具类通过属于一个目录,然后输出这个目录下的所有东西,
* 如果这个目录下面还有目录,那么再次输出这个目录下的东西以此类推。
*/
public class FileUtile {
/*
* 首先需要一个类方法(static),那么就可以直接FileUtile.name调用方法了
*/
public static List getAllFiles(String dir){
List<File> files = new ArrayList<File>();
File file = new File(dir);
//判断存在且为目录
if(file.exists()&&file.isDirectory()){
helper(file,files);
}
return files;
}
private static void helper(File file,List<File> files){
File[] fileArr = file.listFiles();
//遍历一遍,如果有目录继续递归
for(File f:fileArr){
files.add(f);
if(f.isDirectory())
helper(f,files);
}
}
}
package Test;
import java.io.File;
import java.util.List;
import FileUtile.*;
/**
*
* @author LvGJ
* 这是主类,用于调用工具类中的方法。
* **注意导包**
*/
public class Pratice2 {
public static void main(String[] args) {
List<File> list = FileUtile.getAllFiles("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016\\Java_IOTest");
for(File f:list){
System.out.println(f.getName());
}
}
}
原文:https://www.cnblogs.com/lvgj/p/12506891.html