try catch FileInputStream
原代码:
FileInputStream 先声明,之后在try catch代码块中进行文件读取操作,finally中进行FileInputStream的close。
FileInputStream fileInputStream = null;
try{
fileInputStream = new FileInputStream(controlFileLocalPath);
byte[] bytes = new byte[fileInputStream.available()];
// todo read 不用字节,其他形式。考虑文件大小,缓冲,进行读取
fileInputStream.read(bytes);
String controlFileResult = null;
controlFileResult = new String(bytes, StandardCharsets.UTF_8);
LOGGER.info("===== controlFileResult:[{}]", controlFileResult);
return CONTROL_FILE_CONTENT.equals(controlFileResult);
} catch (Exception e) {
LOGGER.error("=====read local control file error.", e);
throw 异常;
} finally { //注意此处,下面代码可不用
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
LOGGER.error("=====close fileInputStream error.", e);
}
}
}
新代码:
FileInputStream声明放在try()里面,后边不用写finally进行FileInputStream的close。会自动关闭
try(FileInputStream fileInputStream = new FileInputStream(controlFileLocalPath)){
byte[] bytes = new byte[fileInputStream.available()];
// todo read 不用字节,其他形式。考虑文件大小,缓冲,进行读取
fileInputStream.read(bytes);
String controlFileResult = null;
controlFileResult = new String(bytes, StandardCharsets.UTF_8);
LOGGER.info("=====controlFileResult:[{}]", controlFileResult);
return CONTROL_FILE_CONTENT.equals(controlFileResult);
} catch (Exception e) {
LOGGER.error("=====read local control file error.", e);
throw 异常
}