如何读取给定目录中的所有txt文件以查找字符串?JAVA
我希望能够扫描指定目录中的所有文本文件以查找字符串。我知道如何阅读一个文本文件。这很简单,但是如何让它扫描给定目录中一堆文本文件中的所有内容呢 这些文件将全部命名为0.txt 1.txt 2.txt等,如果这有帮助的话,也许可以使用计数器增加搜索文件的名称,然后在没有更多的txt文件时停止搜索?这是我最初的想法,但我似乎无法实现它如何读取给定目录中的所有txt文件以查找字符串?JAVA,java,io,Java,Io,我希望能够扫描指定目录中的所有文本文件以查找字符串。我知道如何阅读一个文本文件。这很简单,但是如何让它扫描给定目录中一堆文本文件中的所有内容呢 这些文件将全部命名为0.txt 1.txt 2.txt等,如果这有帮助的话,也许可以使用计数器增加搜索文件的名称,然后在没有更多的txt文件时停止搜索?这是我最初的想法,但我似乎无法实现它 谢谢您可以使用此示例代码列出目录下的所有文件 public File[] listf(String directoryName) { // ............
谢谢您可以使用此示例代码列出目录下的所有文件
public File[] listf(String directoryName) {
// .............list file
File directory = new File(directoryName);
// get all the files from a directory
File[] fList = directory.listFiles();
}
您可以使用此示例代码列出目录下的所有文件
public File[] listf(String directoryName) {
// .............list file
File directory = new File(directoryName);
// get all the files from a directory
File[] fList = directory.listFiles();
}
您可以使用以下方法:
String dirName = "E:/Path_to_file";
File dir = new File(dirName);
File[] allFiles = dir.listFiles();
for(File file : allFiles)
{
// do something
}
您可以使用以下方法:
String dirName = "E:/Path_to_file";
File dir = new File(dirName);
File[] allFiles = dir.listFiles();
for(File file : allFiles)
{
// do something
}
然后在检索每个文件后,使用
LineIterator li = FileUtils.lineIterator(file);
boolean searchTermFound = false;
while(li.hasNext() && !searchTermFound) {
String sLine = li.next();
//Find the search term...
}
检索每个文件后,使用
LineIterator li = FileUtils.lineIterator(file);
boolean searchTermFound = false;
while(li.hasNext() && !searchTermFound) {
String sLine = li.next();
//Find the search term...
}
此代码片段将执行您所需的操作(可能使用不同的字符集):
此代码段将执行您正在查找的操作(可能使用您选择的其他字符集):
方法调用:
scanFiles(新文件(“”.getAbsolutePath(),“bla”)代码>
其他信息:
您可以将FilenameFilter传递到此methodcall文件夹.listFiles(新FilenameFilter(){…})
methodcall:scanFiles(新文件(“”.getAbsolutePath(),“bla”)代码>
其他信息:
您可以将FilenameFilter传递到此methodcall文件夹。listFiles(新FilenameFilter(){…})
尝试以下操作:
public class FindAllFileFromDirectory {
static List<String> fileNames = new ArrayList<String>();
public static void main(String[] args) {
File AppDistributionDir = new File("<your directory path>");
if (AppDistributionDir.isDirectory()) {
listFilesForFolder(AppDistributionDir);
}
for (String s : fileNames) {
String fileExtension = FilenameUtils.getExtension(s); // import org.apache.commons.io.FilenameUtils;
//TODO: your condition hrere
if (s.equals("txt")) {
System.out.println(s);
}
}
}
public static void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
//System.out.println(fileEntry.getAbsolutePath());
fileNames.add(fileEntry.getName());
}
}
}
}
公共类FindAllFileFromDirectory{
静态列表文件名=新的ArrayList();
公共静态void main(字符串[]args){
文件AppDistributionDir=新文件(“”);
if(AppDistributionDir.isDirectory()){
listFilesForFolder(AppDistributionDir);
}
用于(字符串s:文件名){
字符串fileExtension=FilenameUtils.getExtension;//导入org.apache.commons.io.FilenameUtils;
//托多:你的情况怎么样
如果(s.equals(“txt”)){
系统输出打印项次;
}
}
}
公共静态无效列表filesforfolder(最终文件文件夹){
对于(最终文件条目:folder.listFiles()){
if(fileEntry.isDirectory()){
listFilesForFolder(文件条目);
}否则{
//System.out.println(fileEntry.getAbsolutePath());
add(fileEntry.getName());
}
}
}
}
试试这个:
public class FindAllFileFromDirectory {
static List<String> fileNames = new ArrayList<String>();
public static void main(String[] args) {
File AppDistributionDir = new File("<your directory path>");
if (AppDistributionDir.isDirectory()) {
listFilesForFolder(AppDistributionDir);
}
for (String s : fileNames) {
String fileExtension = FilenameUtils.getExtension(s); // import org.apache.commons.io.FilenameUtils;
//TODO: your condition hrere
if (s.equals("txt")) {
System.out.println(s);
}
}
}
public static void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
//System.out.println(fileEntry.getAbsolutePath());
fileNames.add(fileEntry.getName());
}
}
}
}
公共类FindAllFileFromDirectory{
静态列表文件名=新的ArrayList();
公共静态void main(字符串[]args){
文件AppDistributionDir=新文件(“”);
if(AppDistributionDir.isDirectory()){
listFilesForFolder(AppDistributionDir);
}
用于(字符串s:文件名){
字符串fileExtension=FilenameUtils.getExtension;//导入org.apache.commons.io.FilenameUtils;
//托多:你的情况怎么样
如果(s.equals(“txt”)){
系统输出打印项次;
}
}
}
公共静态无效列表filesforfolder(最终文件文件夹){
对于(最终文件条目:folder.listFiles()){
if(fileEntry.isDirectory()){
listFilesForFolder(文件条目);
}否则{
//System.out.println(fileEntry.getAbsolutePath());
add(fileEntry.getName());
}
}
}
}
看看文件#列表文件
;这将为您提供目录中的所有文件。请查看文件#列表文件
;这将为您提供目录中的所有文件。您在此处添加了谁?有一些回复,对不起,我将添加到所有回答中,这些回答说通过File.listFiles()
获取文件列表。您在这里添加了谁?有一些回复,对不起,我将添加到所有回答中,即通过File.listFiles()
获取文件列表。使用此选项,我将如何自动打开txt文件?我使用的代码是Runtime.getRuntime().exec(“记事本”+文件名);当我知道文件名和直接地址,但现在我不知道写什么。谢谢。您要问的是如何使用运行时#exec
命令在外部应用程序中打开文件。这真的应该是一个单独的问题(它已经被回答了很多次,例如,.True.Thank.I弄明白了。它是Runtime.getRuntime().exec(“记事本”+文件);这将打开包含字符串的txt文件。使用此选项,我将如何自动打开txt文件?我使用的代码是Runtime.getRuntime().exec(“记事本”+文件名);当我知道文件名和直接地址时,但现在我不知道该写什么。谢谢。你要问的是如何使用运行时#exec
命令在外部应用程序中打开文件。这应该是一个单独的问题(并且它已经被回答了多次,例如,.True.Thank you。我猜出来了。它是Runtime.getRuntime().exec(“记事本”+文件);这将打开包含字符串的txt文件。您的意思是if(fileExtension.equals(“txt”){System.out.println(s);}
不是真的!他们会根据自己的需要更改它。你是说如果(fileExtension.equals(“txt”){System.out.println;}
不是真的!他们会根据自己的需要更改它