java根据路径读取文件

路径:C:\Users\HP\Desktop... 路径:C:\Users\HP\Desktop 展开
 我来答
乐观的a1a
2018-03-22
知道答主
回答量:9
采纳率:0%
帮助的人:7092
展开全部
直接贴代码吧。不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在C盘下有一个Users\HP\Desktop的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了这个路径,则程序会报找不到文件路径的异常。你可以对这个异常进行人性的处理,还可以在程序要向这个路径写入数据之前,创建出这个路径。
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 = "C:\\Users\HP\\Desktop\\";
private static ArrayList<String> mfiles = new ArrayList<String>();

/**
* 得到给定路径下的目录或是文件
* @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<String> 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();
}
}
}
犀利且温馨丶熊猫e
2018-03-22 · 知道合伙人软件行家
犀利且温馨丶熊猫e
知道合伙人软件行家
采纳数:214 获赞数:313
JavaWeb高级工程师 北大青鸟Java技术顾问

向TA提问 私信TA
展开全部

其读取方法为:

import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.IOException;  
import java.util.ArrayList;  
  
  
public class readFile {  
    private static ArrayList<String> listname = new ArrayList<String>();  
    public static void main(String[] args)throws Exception{  
        readAllFile("C:/Users/HP/Desktop");  
        System.out.println(listname.size());  
    }  
    public static void readAllFile(String filepath) {  
        File file= new File(filepath);  
        if(!file.isDirectory()){  
            listname.add(file.getName());  
        }else if(file.isDirectory()){  
            System.out.println("文件");  
            String[] filelist=file.list();  
            for(int i = 0;i<filelist.length;i++){  
                File readfile = new File(filepath);  
                if (!readfile.isDirectory()) {  
                    listname.add(readfile.getName());  
                } else if (readfile.isDirectory()) {  
                    readAllFile(filepath + "\\" + filelist[i]);//递归  
                }  
            }  
        }  
        for(int i = 0;i<listname.size();i++){  
            System.out.println(listname.get(i));  
        }  
    }  
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5105201314
2018-03-22 · TA获得超过177个赞
知道答主
回答量:87
采纳率:20%
帮助的人:6.5万
展开全部
读取文件内容还是读取某个目录下的所有文件名?
追问
这个路径下的文件内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式