java读取文件指定位置_Java读取指定路径下的文件列表

直接贴代码吧。不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了这个路径,则程序会报找不到文件路径的异常。你可以对这个异常进行人性的处理,还可以在程序要向这个路径写入数据之前,创建出这个路径。

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.Scanner;

public class ListRoots {

private static final String LOG_BASE_PATH = "F:\\log_files\\";

private static ArrayList mfiles = new ArrayList();

/**

* 得到给定路径下的目录或是文件

* @param strPath

* @throws Exception

*/

private static void displayDirsOrFiles(String strPath) throws Exception {

try {

File f = new File(strPath);

if (f.isDirectory()) {

File[] fList = f.listFiles();

for (int j = 0; j < fList.length; j++) {

if (fList[j].isDirectory()) {

System.out.println("Directory is: "+ fList[j].getPath());

displayDirsOrFiles(fList[j].getPath()); // 对当前目录下仍是目录的路径进行遍历

}

}

for (int j = 0; j < fList.length; j++) {

if (fList[j].isFile()) {

String name = fList[j].getPath().toString();

System.out.println("Filename is: " + name);

mfiles.add(fList[j].getPath());

}

}

}

} catch (Exception e) {

System.err.println("Error: " + e);

}

}

/**

* 向文件中写入数据

* @param dirOrfiles

* @throws IOException

*/

private static void writeDetailToFiles(ArrayList dirOrfiles) throws IOException {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");

toFiles(getLogPath(), format.format(new Date()) + " -- 检测到文件" + dirOrfiles.size() + "个:" + "\r\n");

for (String file : dirOrfiles) {

toFiles(getLogPath(), file + "\r\n");

}

toFiles(getLogPath(), "--------------------------------------------------------------------------------------------------------------------------\r\n");

}

/**

* 获得写入数据的路径

* @return

*/

private static String getLogPath() {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

return LOG_BASE_PATH + format.format(new Date()) + ".txt";

}

/**

* 向dir路径下写入数据data

* @param path

* @param data

*/

private static void toFiles(String path, String data) throws IOException {

File file = new File(path);

if (!file.exists()) {

file.createNewFile();

}

FileWriter fw = new FileWriter(file, true);

fw.write(data);

fw.flush();

fw.close();

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入待遍历目录路径(Format: F:\\a\\b):");

String strPath = input.nextLine();

try {

displayDirsOrFiles(strPath.replace("\\", "\\\\"));

writeDetailToFiles(mfiles);

} catch (Exception e) {

e.printStackTrace();

}

}

}

源代码下载连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值