博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I/O流之FileWriter【获取当前目录下所有子文件的绝对路径】
阅读量:6245 次
发布时间:2019-06-22

本文共 4299 字,大约阅读时间需要 14 分钟。

 

需求:

1、编写程序,在main方法中,在当前目录下(项目目录)创建一个新目录newDir;

2、获取当前目录(项目目录)中所有文件列表信息,把这些信息写到目录newDir中的info.txt文件中


 

方法1:使用ArrayList<String>存储当前目录下所有文件的绝对路径

 

package 课后练习;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;public class FileDemo {    public static void main(String[] args) {        FileDemo fileDemo = new FileDemo();        // 创建数组链表存储文件路径        ArrayList
info = new ArrayList
(); BufferedWriter bw = null; try { // 创建newDir File file = new File("newDir"); file.mkdir(); // 在newDir下创建文件info.txt File newFile = new File("newDir/info.txt"); newFile.createNewFile(); // 获取当前目录 File currentDir = new File("E:\\04_北京惠科培训\\JavaSECode\\7月\\Me\\day16"); // 创建文件输出流对象 bw = new BufferedWriter(new FileWriter(newFile)); ArrayList
fileInfo = fileDemo.getFileInfo(currentDir, info); // 将数组链表中的数据写入Info.txt文件 for (String s : fileInfo) { bw.write(s+"\n"); } } catch (IOException e) { e.printStackTrace(); } finally { if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } /**功能: 获取当前目录(项目目录)中所有文件列表信息 * @param file 当前目录 * @param str 存储文件的绝对路径 * @return 返回所有当前目录下的文件路径 */ public ArrayList
getFileInfo(File file, ArrayList
str) { // 获取当前目录下的文件 File[] listFiles = file.listFiles(); // 如果文件链表为空或长度为0,则代表该文件没有子文件 if (listFiles == null || listFiles.length == 0) { return null; } // 否则遍历该文件夹下的子文件 for (File f : listFiles) { if (f.isDirectory()) { getFileInfo(f, str); } else { str.add(f.getAbsolutePath()); } } return str; }}

 


 方法2:使用StringBuilder存储当前目录下所有文件的绝对路径

package 课后练习;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;public class FileDemo {    public static void main(String[] args) {        FileDemo fileDemo = new FileDemo();        // 创建StringBuilder存储文件路径        StringBuilder sb = new StringBuilder();        BufferedWriter bw = null;                try {            // 创建newDir            File file = new File("newDir");            file.mkdir();                         // 在newDir下创建文件info.txt            File newFile = new File("newDir/info.txt");            newFile.createNewFile();                        // 获取当前目录            File currentDir = new File("E:\\04_北京惠科培训\\JavaSECode\\7月\\Me\\day16");                        // 创建文件输出流对象            bw = new BufferedWriter(new FileWriter(newFile));                        StringBuilder fileInfo = fileDemo.getFileInfo(currentDir, sb);            String str = sb.toString();            bw.write(str);            } catch (IOException e) {            e.printStackTrace();        } finally {            if (bw != null) {                try {                    bw.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }        /**功能: 获取当前目录(项目目录)中所有文件列表信息     * @param file 当前目录     * @param str 存储文件的绝对路径     * @return 返回所有当前目录下的文件路径     */public StringBuilder getFileInfo(File file, StringBuilder str) {        // 获取当前目录下的文件        File[] listFiles = file.listFiles();        // 如果文件链表为空或长度为0,则代表该文件没有子文件        if (listFiles == null || listFiles.length == 0) {            return null;        }        // 否则遍历该文件夹下的子文件        for (File f : listFiles) {            if (f.isDirectory()) {                getFileInfo(f, str);            } else {                str.append(f.getAbsolutePath()+"\n");            }        }        return str;    }}

 

运行结果:

 

转载于:https://www.cnblogs.com/snow1234/p/7203240.html

你可能感兴趣的文章
10.第一个小项目
查看>>
SDS(Simple Dynamic String)一个简易动态字符串库
查看>>
swfit-pod使用
查看>>
(九)easyUI之选项卡
查看>>
日志分析工具ELK(三)
查看>>
PAT (Advanced Level) 1049. Counting Ones (30)
查看>>
HDU 5763 Another Meaning
查看>>
session详解
查看>>
scroll滚动条
查看>>
mysql链接超时错误
查看>>
Win10 安装 Linux子系统 Ubuntu18.04 / Kali Linux 的体验
查看>>
才发现用git Gui也能上传项目到gitHub,下面分享一下经验
查看>>
P1462 通往奥格瑞玛的道路
查看>>
关于ajax
查看>>
一份关于jvm内存调优及原理的学习笔记
查看>>
怎么查看80端口占用情况- 如何查看端口占用情况?
查看>>
搭建测试框架
查看>>
position:absolute在IE8浏览器下无法显示正确位置
查看>>
过滤器与拦截器区别
查看>>
C# 使用 Windows API 发送文件到打印机
查看>>