急急急JAVA作业
2019-05-08
展开全部
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Main obj = new Main();
String path = "C:\\a";
//第一题
obj.method1();
//第二题
obj.method2(path);
//第三题
obj.method3(path);
}
/**
* 第一题
*/
public void method1(){
File file = new File("C:\\a");
if (!file.exists()&&!file.isDirectory()) {
System.out.println("文件夹不存在");
boolean mkdir = file.mkdir();
if (mkdir) {
System.out.println("文件夹创建成功");
}
}else {
System.out.println("文件夹存在");
boolean delete = file.delete();
if (delete) {
System.out.println("文件夹删除成功");
}
}
}
/**
* 第二题
* @param path
*/
public void method2(String path) {
File file = new File(path);
if (!file.exists()&&!file.isDirectory()) {
System.out.println("文件夹不存在");
}else {
//打印文件名
method2ext(file);
}
}
/**
* 第二题拓展方法
* @param file
*/
public void method2ext(File file) {
//是文件的话打印
System.out.println(file.getPath());
//是文件夹的话
if (file.isDirectory()) {
//获取文件夹下所有文件、文件夹
File[] list = file.listFiles();
//递归调用
for (File f : list) {
method2ext(f);
}
}
}
/**
* 第三题
* @param path
*/
public void method3(String path) {
List<String> list = new ArrayList<>();
File file = new File(path);
List<List<String>> lists = new ArrayList<>();
if (!file.exists()&&!file.isDirectory()) {
System.out.println("文件夹不存在");
}else {
//递归添加文件信息到list中
method3ext(file, list);
//打印list
for (String s : list) {
System.out.println(s);
}
}
}
/**
* 第三题拓展方法
* @param file
* @param list
*/
public void method3ext(File file,List<String> list) {
//是文件的话添加到list中
list.add(file.getPath());
//是文件夹的话
if (file.isDirectory()) {
//获取文件夹下所有文件、文件夹
File[] fileList = file.listFiles();
//递归调用
for (File f : fileList) {
method3ext(f, list);
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个问题:只是简单的字符流的操作
1 首先我们根据地址获取一个file对象,然后获取其父对象,也就是文件夹
2、先判断文件是否存在如果不存在则创建,然后再创建文件,否则删除文件夹
具体代码如下:
package test;
import java.io.File;
import java.io.IOException;
public class Test6 {
public static void main(String[] args) throws IOException {
File file = new File("c:/a/test.txt");
File fileParent = file.getParentFile();
//如果文件夹存在,删除
if(file.exists() || fileParent.isDirectory()){
System.out.println("存在则执行删除!");
fileParent.delete(); //删除空文件夹
}else{
System.out.println("文件夹不存在,创建!");
fileParent.mkdir();
//创建文件
file.createNewFile();
}
}
}
第二个问题仍然是文件的流的基本使用
代码如下所示:
package test;
import java.io.File;
public class Test7 {
public static void main(String[] args) {
print("C:/a");
}
public static void print(String path){
File file = new File(path);
if(!file.isDirectory()){
System.out.println(path+":不是文件夹");
return;
}
System.out.println(file.getPath());
File[] files = file.listFiles();
for (int j = 0; j < files.length; j++) {
if(files[j].isFile()){
System.out.println(files[j].getPath()+files[j].getName());
}else if(files[j].isDirectory()){
print(files[j].getPath());
}
}
}
}
第三个问题也就是第二个问题的延伸只是假如了集合。
1、第二个问题解决输出就解决了第三个问题
代码如下所示:
package test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Test7 {
public static void main(String[] args) {
List list = new ArrayList();
print("C:/a",list);
//循环输出list集合
for (Object object : list) {
System.out.println(object);
}
}
public static void print(String path,List list){
File file = new File(path);
if(!file.isDirectory()){
System.out.println(path+":不是文件夹");
return;
}
list.add(file.getPath());
File[] files = file.listFiles();
for (int j = 0; j < files.length; j++) {
if(files[j].isFile()){
list.add(files[j].getPath()+files[j].getName());
}else if(files[j].isDirectory()){
print(files[j].getPath());
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询