我希望用Java编写一个函数来搜索文本文件中的特定String。我应该使用哪个循环以及如何使用? (说它是一个循环,什么条件?)
答案 0 :(得分:3)
最常用的循环是while
循环,因为你需要循环并比较从文件中退出的字符串是否不是null
。
嗯,这就是说,让我们看一些代码。您可以编写的解决方案是先在BufferedReader
实例中打开文件,然后逐行读取该文件,并查看该行是否包含您要查找的字符串。
如果是,您可以使用boolean
变量并将其指定为true,否则将其指定为false。
你可以在Java中使用这样的东西:
public static boolean findStringFile(String lookingForMe, String pathFile)
{
boolean found = false;
try{
BufferedReader br = new BufferedReader(new FileReader(pathFile));
try{
String line;
while ((line = br.readLine()) != null)
{
if (line.contains(lookingForMe))
found = true;
}
} finally {
br.close();
}
} catch(IOException ioe)
{
System.out.println("Error while opening the file !");
}
return found;
}
此函数将String lookingForMe
作为表示您在文件中搜索的字符串的第一个参数,作为表示文件路径的第二个参数String pathFile
(它可以当它在项目的根目录中时只是nameOfTheFile.extension
。
希望这可以帮到你。
修改强>
如果您的文件有问题(文件不存在或因特权或其他原因而无法打开)或任何其他问题,则执行以下代码部分(如下所示)并不总是成功,执行将停止并抛出异常。
BufferedReader br = new BufferedReader(new FileReader(pathFile));
String line;
while ((line = br.readLine()) != null)
{
if (line.contains(lookingForMe))
found = true;
}
"尝试"的目标是通过显示用户错误消息(您使用system.out.println("Your error message")
指定的消息)来避免这些问题。
您应该使用的相应代码(以避免上面列出的问题)是带有try块(第一个)的代码。
有关Java中的异常的进一步说明,我建议您访问:https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html
答案 1 :(得分:-1)
我通常使用的是BufferedReader并创建一个类似
的while循环while((line = reader.readLine()) != NULL) {
//do stuff
}