如何只读取目录中的文本文件?
How can I read only text files in a directory?
在下面的程序中,我正在读取目录中的文件。但是我只想阅读 .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();
}
}
}
}
}
}
尝试检查扩展程序
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();
}
}
}
}
}
}
使用 Files.probeContentPath() 获取文件的 mime。
您可以使用 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
只包含以 .txt
结尾的文件,或者您需要的任何其他条件。
我喜欢使用 ant.jar 的 DirectoryScanner 方法。
DirectoryScanner scanner = new DirectoryScanner();
scanner.setIncludes(new String[]{"**/*.txt"});
scanner.setBasedir("C:\Files");
scanner.setCaseSensitive(false);
scanner.scan();
String[] files = scanner.getIncludedFiles();
这是来自 Misha Here。但是如您所见,有很多方法可以做到这一点。
您可以使用 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();
}
}
}
}
}
}
编写一个方法,returns 给定目录中的所有 .txt 文件。
import java.io.File;
import java.io.FilenameFilter;
public class Data {
public File[] finder( String dirName){
File dir = new File(dirName);
return dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String filename)
{ return filename.endsWith(".txt"); }
} );
}
public static void main(String[] args) throws IOException {
String target_dir = "C:\Files";
String textfile;
File dir = new File(target_dir);
File[] files = finder(target_dir);
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();
}
}
}
}
}
}
在下面的程序中,我正在读取目录中的文件。但是我只想阅读 .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();
}
}
}
}
}
}
尝试检查扩展程序
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();
}
}
}
}
}
}
使用 Files.probeContentPath() 获取文件的 mime。
您可以使用 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
只包含以 .txt
结尾的文件,或者您需要的任何其他条件。
我喜欢使用 ant.jar 的 DirectoryScanner 方法。
DirectoryScanner scanner = new DirectoryScanner();
scanner.setIncludes(new String[]{"**/*.txt"});
scanner.setBasedir("C:\Files");
scanner.setCaseSensitive(false);
scanner.scan();
String[] files = scanner.getIncludedFiles();
这是来自 Misha Here。但是如您所见,有很多方法可以做到这一点。
您可以使用 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();
}
}
}
}
}
}
编写一个方法,returns 给定目录中的所有 .txt 文件。
import java.io.File;
import java.io.FilenameFilter;
public class Data {
public File[] finder( String dirName){
File dir = new File(dirName);
return dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String filename)
{ return filename.endsWith(".txt"); }
} );
}
public static void main(String[] args) throws IOException {
String target_dir = "C:\Files";
String textfile;
File dir = new File(target_dir);
File[] files = finder(target_dir);
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();
}
}
}
}
}
}