比方说,我有一个文件夹,名为maps
和内部maps
我有map1.txt
,map2.txt,
和map3.txt
。如何使用Java和BufferReader
来读取文件夹maps
中的所有.txt
文件(如果可以的话)?爪哇 - 阅读所有.txt文件夹中
19
A
回答
44
类似下面应该让你去,请注意,我用的,而不是与缓冲器搞乱阿帕奇百科全书文件实用程序和简化流...
File folder = new File("/path/to/files");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
File file = listOfFiles[i];
if (file.isFile() && file.getName().endsWith(".txt")) {
String content = FileUtils.readFileToString(file);
/* do somthing with content */
}
}
22
我会采取@Andrew白色答案(+1 BTW )更进一步,并建议你使用FilenameFilter仅列出相关的文件:
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
};
File folder = new File("/path/to/files");
File[] listOfFiles = folder.listFiles(filter);
for (int i = 0; i < listOfFiles.length; i++) {
File file = listOfFiles[i];
String content = FileUtils.readFileToString(file);
// do something with the file
}
4
final File folder = new File("C:/Dev Tools/apache-tomcat-6.0.37/webapps/ROOT/somefile");
for (final File fileEntry : folder.listFiles()) {
System.out.println("FileEntry Directory "+fileEntry);
+1
这是否增加了其他答案的任何改进?或者是for-每个只是语法首选项? – 2014-09-30 18:14:00
+1
它的确如此,唯一的区别是它干净,代码少。 – Lokesh 2014-09-30 18:16:03
0
我认为这是从地图读取所有.txt文件和好方法子文件夹的
private static void addfiles (File input,ArrayList<File> files)
{
if(input.isDirectory())
{
ArrayList <File> path = new ArrayList<File>(Arrays.asList(input.listFiles()));
for(int i=0 ; i<path.size();++i)
{
if(path.get(i).isDirectory())
{
addfiles(path.get(i),files);
}
if(path.get(i).isFile())
{
String name=(path.get(i)).getName();
if(name.lastIndexOf('.')>0)
{
int lastIndex = name.lastIndexOf('.');
String str = name.substring(lastIndex);
if(str.equals(".txt"))
{
files.add(path.get(i));
}
}
}
}
}
if(input.isFile())
{
String name=(input.getName());
if(name.lastIndexOf('.')>0)
{
int lastIndex = name.lastIndexOf('.');
String str = name.substring(lastIndex);
if(str.equals(".txt"))
{
files.add(input);
}
}
}
}
0
如果你想这样做,使用新的java.nio API的一个更好的方法,那么这个是这样的,从the java docs
Path dir = ...;
try (DirectoryStream<Path> stream =
Files.newDirectoryStream(dir, "*.txt")) {
for (Path entry: stream) {
System.out.println(entry.getFileName());
}
} catch (IOException x) {
// IOException can never be thrown by the iteration.
// In this snippet, it can // only be thrown by newDirectoryStream.
System.err.println(x);
}
0
仅使用JDK,如果您的所有文件都在采取一个目录:
File dir = new File("path/to/files/");
for (File file : dir.listFiles()) {
Scanner s = new Scanner(file);
// do something with file
s.close();
}
要排除的文件,您可以使用listFiles(FileFilter)
相关问题
- 1. 爪哇 - 读取XML文件
- 2. 爪哇 - 读txt文件,并存储为阵列
- 3. 爪哇 - 逐行读取一个txt文件行
- 4. 爪哇尼奥部分阅读
- 5. 阅读txt文件
- 6. 爪哇蚂蚁包括文件夹
- 7. [爪哇]读取&过程文件
- 8. 如何读取文件夹中的所有txt文件? (包括子文件夹)
- 9. 爪哇从文件
- 10. 阅读目录子文件夹中的所有文件
- 11. 阅读.txt文件没有\ n python 3.6
- 12. 阅读文件夹
- 13. FTPClient - 爪哇,上传文件
- 14. 爪哇搜索文件
- 15. FileNotFoundException异常爪哇 - 无法找到TXT文件
- 16. 爪哇 - 关闭文本文件中读出信息
- 17. 阅读python中的txt文件2.5
- 18. 阅读sas中的txt文件
- 19. 阅读Rhomobile中的txt文件内容
- 20. 爪哇 - 复制JPG,同时保留所有文件属性
- 21. 爪哇 - 并行
- 22. PHP - 阅读文件夹,所有子文件夹和子文件夹中的文件
- 23. 阅读CSV文件中的所有列?
- 24. 爪哇 - 从罐子
- 25. 爪哇 - 追加到Excel文件FileOutputStream中
- 26. 爪哇 - 逐行读取文件中的行 - 与分页
- 27. 阅读文件夹中的所有文件并在Excel中显示内容
- 28. 爪哇 - 读从网页中的文本文件,有时不能正确更新
- 29. 爪哇的StringIndexOutOfBoundsException
- 30. 阅读子文件夹WSH
的[阅读AF的所有文件可能的复制旧](http://stackoverflow.com/questions/1844688/read-all-files-in-a-folder) – jsroyal 2017-01-16 17:30:37