我正在读取文件并将其内容存储在字符串中。代码给出了一个警告:资源泄漏:。我该如何解决?
public static String JsonFileToString(String FileName)
{
String FileContent=null;
try {
FileContent = new Scanner(new File("src/main/resources/" + FileName)).useDelimiter("\\Z").next();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return FileContent;
}
答案 0 :(得分:0)
您必须将扫描仪分配给变量,以便可以在finally块中关闭它。
String FileContent=null;
Scanner sc = null;
try {
sc = new Scanner(new File("src/main/resources/" + ""));
FileContent = sc.useDelimiter("\\Z").next();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
sc.close();
}
答案 1 :(得分:0)
您没有关闭您为阅读文件而创建的Scanner
,因此该文件随后仍然保持打开状态。
假设您使用的是Java 7+,请使用try-with-resources确保清理扫描程序:
try (Scanner sc = new Scanner(new File("src/main/resources/" + FileName)).useDelimiter("\\Z")) {
return sc.next();
} catch (FileNotFoundException e) {
e.printStackTrace();
}