急急急JAVA作业

 我来答
亻入我心
2019-05-08 · TA获得超过491个赞
知道小有建树答主
回答量:1020
采纳率:34%
帮助的人:227万
展开全部

新手写的,将就看

匿名用户
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);
            }
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡254351481
2019-05-09 · TA获得超过203个赞
知道小有建树答主
回答量:281
采纳率:50%
帮助的人:71万
展开全部

第一个问题:只是简单的字符流的操作

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());
}
}
}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式