int filename = 100;
String[] fileName = new String[filename];
int a = 0;
int totalCount = 0;
int wordCount = 0;
// Count the number of documents containing the query
System.out.println("Please enter the query :");
Scanner scan2 = new Scanner(System.in);
String word2 = scan2.nextLine();
String[] array2 = word2.split(" ");
int[] numofDoc = new int[array2.length];
for (int b = 0; b < array2.length; b++) {
numofDoc[b] = 0;
for (int i = 0; i < filename; i++) {
try {
BufferedReader bf = new BufferedReader(new FileReader(
"C:\\Users\\user\\fypworkspace\\FYP\\abc"
+ i + ".txt"));
int matchedWord = 0;
Scanner s2 = new Scanner(bf);
{
while (s2.hasNext()) {
if (s2.next().equals(array2[b]))
matchedWord++;
}
}
if (matchedWord > 0)
numofDoc[b]++;
} catch (IOException e) {
System.out.println();
}
}
_resultArea.append(array2[b]
+ " --> This number of files that contain this term "
+ numofDoc[b]+ newline);
}
嗨,这是我的代码,用于计算包含用户键入的特定输入的文件数。此代码分析文本文件的文件夹,并搜索文本文件是否有输入。 我现在面临的问题是,我现在声明数组大小为100.这意味着它将处理100个文本文件,无论文件夹是否有100个文件。 如何让程序处理文件夹中的确切文本文件数?
注意:文本文件的数量是动态的。它在文件夹中没有固定数量的文本文件。
答案 0 :(得分:3)
查看java.io.File.list()
,然后使用List
。
例如:
File[] files = dir.list();
List<File> list = new LinkedList<File>();
for (File f : files) {
if (/* f matches our criteria */) {
list.add(f);
}
}
如果之后需要数组,请执行以下操作:
File[] array = list.toArray(new File[list.size()]);
答案 1 :(得分:2)
答案 2 :(得分:0)
跟踪您阅读的文本文件的数量,或使用具有尺寸属性的List
。
答案 3 :(得分:0)
您是否尝试使用像
这样的列表 List<String> fileName = new ArrayList<String>();
或者您可以保留您拥有的文件数
for (int i = 0; i < filenameCount; i++) {
答案 4 :(得分:0)
我不是专家,但我很确定你可以使用arraylist