您的fillData
call buffer.readLine()
,它被声明为throwIOException
,但是您既没有捕获witin异常fillData
,也没有声明它可能被抛出。
最简单的解决方法是将的签名更改fillData
为:
public void fillData(String input, BufferedReader buffer) throws IOException
我也强烈建议 不要 关闭中的读者fillData
。通常,获取资源的相同代码应负责关闭资源。在这里,try-with- resources语句最合适,所以在read
:
try (BufferedReader buffer = new BufferedReader(new InputStreamReader(in))) {
String input = buffer.readLine();
fillData(input,buffer);
}
但是,即使这样也不是理想的-因为您早先打开了输入流。我 还 建议始终将编码传递给InputStreamReader
构造函数,否则它将使用平台默认编码。在Java 7+中,您可以使用Files.newBufferedReader
默认为UTF-8的版本。
另外:
基本上, 所有 异常处理和资源管理都需要大量工作。