如何只读取目录中的文本文件?

时间:2015-04-30 15:37:44

标签: java io bufferedreader filereader

在下面的程序中,我目前正在读取目录中的文件。但是,我只想阅读.txt文件。如何只读取目录中的.text文件。

import java.io.*;

public class Data {

    public static void main(String[] args) throws IOException {
        String target_dir = "C:\\Files";
        String textfile;
        File dir = new File(target_dir);
        File[] files = dir.listFiles();

        for (File textfiles : files) {
            if (textfiles.isFile()) {

                BufferedReader inputStream = null;

                try {
                    inputStream = new BufferedReader(new FileReader(textfiles));
                    String line;

                    while ((line = inputStream.readLine()) != null) {
                        System.out.println(line);
                    }
                } finally {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
        }
    }

}

4 个答案:

答案 0 :(得分:3)

您可以使用java.io.FilenameFilter过滤目录中的文件。

import java.io.*;

public class Data {

    public static void main(String[] args) throws IOException {
        String target_dir = "C:\\Files";
        File dir = new File(target_dir);
        FilenameFilter textFileFilter = new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".txt");
            }
        };
        File[] files = dir.listFiles(textFileFilter);

       for (File textfiles : files) {
           if (textfiles.isFile()) {

               BufferedReader inputStream = null;

               try {
                   inputStream = new BufferedReader(new FileReader(textfiles));
                   String line;

                   while ((line = inputStream.readLine()) != null) {
                       System.out.println(line);
                   }
                } finally {
                    if (inputStream != null) {
                        inputStream.close();
                }
            }
        }
    }
}

}

答案 1 :(得分:2)

尝试检查扩展程序

import java.io.*;

public class Data {

    public static void main(String[] args) throws IOException {
        String target_dir = "C:\\Files";
        String textfile;
        File dir = new File(target_dir);
        File[] files = dir.listFiles();

        for (File textfiles : files) {
            if (textfiles.isFile() && textfiles.getName().endsWith(".txt")) {

                BufferedReader inputStream = null;

                try {
                    inputStream = new BufferedReader(new FileReader(textfiles));
                    String line;

                    while ((line = inputStream.readLine()) != null) {
                        System.out.println(line);
                    }
                } finally {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
        }
    }
}

答案 2 :(得分:1)

使用Files.probeContentPath()获取文件的mime。

答案 3 :(得分:0)

您可以使用<img src="{{'someImageLink'}}"> 为您完成这项工作。您的代码可能如下所示:

FileNameFilter

然后您知道 File[] files = dir.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if (name.toLowerCase().endsWith(".txt")) return true; return false; } }); 仅包含以files结尾的文件,或者您需要的任何其他条件。