java - 我需要帮助从目录中的所有文件读取数据

标签 java file io

我有一段代码可以迭代目录中的所有文件。 但我现在陷入了将文件内容读入 String 对象的困境。

public String filemethod(){
        if (path.isDirectory()) {
            files = path.list();
            String[] ss;
            for (int i = 0; i < files.length; i++) {
                ss = files[i].split("\\.");
                if (files[i].endsWith("txt"))
                    System.out.println(files[i]);
            }
        }

    return String.valueOf(files);
}

最佳答案

前段时间遇到了类似的问题,写了一段代码。这将读取目录中所有文件的内容。

可能需要根据您的文件目录进行调整,但其代码经过尝试和测试。希望这会有所帮助:)

package FileHandling;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;

public class BufferedInputStreamExample {

    FileInputStream fis = null;
    BufferedInputStream bis = null;
    DataInputStream dis = null;

    public void readFile(File folder) {
        ArrayList<File> myFiles = listFilesForFolder(folder);

        for (File f : myFiles) {
            String path = f.getAbsolutePath();

            //Path of the file(Optional-You can know which file's content is being printed)
            System.out.println(path);
            File infile = new File(path);

            try {
                fis = new FileInputStream(infile);
                bis = new BufferedInputStream(fis);
                dis = new DataInputStream(bis);

                while (dis.available() != 0) {
                    String line = dis.readLine();
                    System.out.println(line);
                }

            } catch (IOException e) {
            } finally {
                try {
                    fis.close();
                    bis.close();
                    dis.close();
                } catch (Exception ex) {
                }
            }
        }
    }

    public ArrayList<File> listFilesForFolder(final File folder){
        ArrayList<File> myFiles = new ArrayList<File>();

        for (File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                myFiles.addAll(listFilesForFolder(fileEntry));
            } else {
                myFiles.add(fileEntry);
            }
        }
        return myFiles;
    }
}

主要方法

package FileHandling;

import java.io.File;

public class Main {

public static void main(String args[]) {

    //Your directory here
    final File folder = new File("C:\\Users\\IB\\Documents\\NetBeansProjects\\JavaIO\\files");

    BufferedInputStreamExample bse = new BufferedInputStreamExample();
    bse.readFile(folder);

    }
}

关于java - 我需要帮助从目录中的所有文件读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412831/

相关文章:

c - fgetc 在识别新行时停止 (\n)

asp.net-mvc - IIS 站点上的高 CPU

java - java流中的最佳 block 大小

java - 更改MapReduce(K,V)输出格式

java - 现有 PUBLIC 模式的 Flyway

java - KeyListener 无法与 Java 中的 MediaPlayer 一起正常工作

java - 使用 Datastax CQL 驱动程序插入 Cassandra 时设置 TTL

java - JTextField on Key Entered 闪烁黑色

c - sscanf的返回值

java 使用 PrintWriter 将模式打印到文件