-1
好的,所以我有這個功能,我用它來搜索文件中的特定文本,當它發現文件中的文本時,它應該返回所有文件中的所有文件包含該文本 所以,我有一個功能,這樣做......但我有另一個功能有點不同,它不返回任何東西,我非常確定該文件包含搜索文本... 所以,在這裏是可以工作的函數:通過多個文件搜索不起作用
public void searchText(String text, CommandSender p) {
File[] searchFiles = new File[files.size()];
searchFiles = files.toArray(searchFiles);
FileReader fileReader = null;
BufferedReader br = null;
for(File searchFile : searchFiles)
{
try {
fileReader = new FileReader(searchFile);
br = new BufferedReader(fileReader);
String line = "";
while ((line = br.readLine()) != null) {
if (line.indexOf(text) >= 0) {
p.sendMessage(line);
}
}
} catch (Exception e) {
if((fileReader != null) && (br != null))
{
try {
br.close();
fileReader.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
if((fileReader != null) && (br != null))
{
try {
br.close();
fileReader.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
}
該函數很好地將這些行賦予控制檯。 但是當我使用這個功能:
public String searchPos(int x, int y, int z) {
String xyz = z + ", " + y + ", " + z;
StringBuffer sb = new StringBuffer();
File[] searchFiles = new File[files.size()];
searchFiles = files.toArray(searchFiles);
FileReader fileReader = null;
BufferedReader br = null;
for(File searchFile : searchFiles)
{
try {
fileReader = new FileReader(searchFile);
br = new BufferedReader(fileReader);
String line = "";
while ((line = br.readLine()) != null) {
if ((line.indexOf(xyz) >= 0) || (line.contains(xyz))) {
sb.append(line);
}
}
} catch (Exception e) {
if((fileReader != null) && (br != null))
{
try {
br.close();
fileReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
if((fileReader != null) && (br != null))
{
try {
br.close();
fileReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
return sb.toString();
}
回報只不過是「」或什麼,我只是不明白爲什麼第一個函數不工作,第二個沒有。
由於提前,blackwolf12333
我做的事情增加,但低於答案是正確的......所以謝謝,誰回答了它......:P對不起,用這個打擾你們 – blackwolf123333