如何使用Java从文件夹中逐个读取所有文件中的数据?

如何使用Java从文件夹中逐个读取所有文件中的数据?,java,Java,如何使用Java从文件夹中的所有文件(逐个)读取数据 这段代码只返回文件名,我正在寻找更深入的搜索: File folder = new File("/home/user_name/Downloads/textfiles/"); File[] listOfFiles = folder.listFiles(); for (File file : listOfFiles) { if (file.isFile()) { System.out.println(file.getN

如何使用Java从文件夹中的所有文件(逐个)读取数据

这段代码只返回文件名,我正在寻找更深入的搜索:

File folder = new File("/home/user_name/Downloads/textfiles/");
File[] listOfFiles = folder.listFiles();

for (File file : listOfFiles) {
    if (file.isFile()) {
        System.out.println(file.getName());
    }
}
使用commons io

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>


public static void main(String[] args) {
    try {
        File files = new File("\\home\\folder");
        for (File file : files.listFiles()) {
            List<String> lines = FileUtils.readLines(file);
            System.out.println();
            System.out.println();
            System.out.println("******" + file.getName());
            for (String line : lines) {
                System.out.println(line);
            }
            System.out.println(file.getName() + "******");
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

公地io
公地io
2.6
公共静态void main(字符串[]args){
试一试{
File files=新文件(“\\home\\folder”);
对于(文件:files.listFiles()){
列表行=FileUtils.readLines(文件);
System.out.println();
System.out.println();
System.out.println(“*******”+file.getName());
用于(字符串行:行){
系统输出打印项次(行);
}
System.out.println(file.getName()+“*******”);
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
使用commons io

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>


public static void main(String[] args) {
    try {
        File files = new File("\\home\\folder");
        for (File file : files.listFiles()) {
            List<String> lines = FileUtils.readLines(file);
            System.out.println();
            System.out.println();
            System.out.println("******" + file.getName());
            for (String line : lines) {
                System.out.println(line);
            }
            System.out.println(file.getName() + "******");
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

公地io
公地io
2.6
公共静态void main(字符串[]args){
试一试{
File files=新文件(“\\home\\folder”);
对于(文件:files.listFiles()){
列表行=FileUtils.readLines(文件);
System.out.println();
System.out.println();
System.out.println(“*******”+file.getName());
用于(字符串行:行){
系统输出打印项次(行);
}
System.out.println(file.getName()+“*******”);
}
}捕获(IOE异常){
e、 printStackTrace();
}
}

标准的Java 8方法只是迭代给定目录中的所有路径:

Path inputDir = Paths.get("path/to/dir");
if (Files.isDirectory(inputDir)) {
    List<Path> filePaths = Files.list(inputDir).collect(Collectors.toList());
    for (Path filePath : filePaths) {
        // Load file contents...
    }
}
Path inputDir=Path.get(“Path/to/dir”);
if(Files.isDirectory(inputDir)){
List filepath=Files.List(inputDir.collect(Collectors.toList());
用于(路径文件路径:文件路径){
//加载文件内容。。。
}
}

在循环中输入的内容取决于您的需要。您可以制作一个
读取器
,根据要使用的内存量和性能要求等,将行流式输出,甚至内存映射出来。

标准Java 8方法只是迭代给定目录中的所有
路径

Path inputDir = Paths.get("path/to/dir");
if (Files.isDirectory(inputDir)) {
    List<Path> filePaths = Files.list(inputDir).collect(Collectors.toList());
    for (Path filePath : filePaths) {
        // Load file contents...
    }
}
Path inputDir=Path.get(“Path/to/dir”);
if(Files.isDirectory(inputDir)){
List filepath=Files.List(inputDir.collect(Collectors.toList());
用于(路径文件路径:文件路径){
//加载文件内容。。。
}
}

在循环中输入的内容取决于您的需要。您可以制作一个
读取器
,根据您想要使用的内存量和性能要求等,将行流式输出,甚至内存映射出来。

您可以不用任何外部库,只需使用java.nio

程序如下:

代码将路径作为
String
,并从中创建
java.nio.path
(在本例中使用常量
String
path)。然后它准备一个
映射{
System.out.println(““+fileName+”的内容为:”;
lines.forEach((字符串行)->{
系统输出打印项次(行);
});
System.out.println(“-------------------------------------”);
});
}
}

只需使用java.nio,无需任何外部库即可完成

程序如下:

代码将路径作为
String
,并从中创建
java.nio.path
(在本例中使用常量
String
path)。然后它准备一个
映射{
System.out.println(““+fileName+”的内容为:”;
lines.forEach((字符串行)->{
系统输出打印项次(行);
});
System.out.println(“-------------------------------------”);
});
}
}

是否要访问每个文件的内容?是。我要访问每个文件的内容是否要访问每个文件的内容?是。我想访问每个文件的内容谢谢。这确实有效!!我不明白这部分。Map linesOfFiles=新建树映射()`<代码>映射是存储属于键的值的数据结构。在这种情况下,键是文件名,相应的值是行列表。文件名和行都是
String
s,这就是
map
结构为
map
的原因。这基本上是存储成对的文件名和该文件的内容。你可以在网上看到更多关于这方面的信息。谢谢。这确实有效!!我不明白这部分。Map linesOfFiles=新建树映射()`<代码>映射是存储属于键的值的数据结构。在这种情况下,键是文件名,相应的值是行列表。文件名和行都是
String
s,这就是
map
结构为
map
的原因。这基本上是存储成对的文件名和该文件的内容。你可以阅读更多关于这方面的文章。