我正在为我的编程期末考试而学习。我必须编写一个程序来打开一个存储在字符串 fileName 中的文件并在文件中查找名为 personName 的字符串,这应该打印 personName 之后的第一个字符串,然后程序应该在打印后终止,如果参数 personName 是不在文件中,则应打印“此名称不存在”,然后如果发生 IOException,则应打印“存在 IO 错误”,并且程序应使用 system.exit(0) 退出
程序应该使用文件 info.txt 并且每行应该包含两个字符串第一个字符串名称和第二个年龄。
一切都必须在一种方法中
data.txt 包含
最大 60.0
乔 19.0
阿里20.0
到目前为止,我的代码是:
public class Files{
public void InfoReader(String fileName, String personName)
{
try{
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("C://rest//data.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
//Read File Line By Line
while ((fileName = br.readLine()) != null) {
// Print the content on the console
(new Files()).infoReader("info.txt","Joe"); //this prints the age
}
//Close the input stream
in.close();
}
catch (IOException e)
{//Catch exception if any
System.out.println(" there is an IO Error");
System.exit(0);
}
}
catch (Exception e)
{//Catch exception if any
System.out.println("that name doesn't exists");
}
}
}
infoReader(info.txt,Joe);
应该打印19.0
但我得到一个java.lang.StackOverflowError
任何帮助将非常感激!!
提前致谢!