改进以下代码: public static List<String[]> getFileData(String fileName) { FileReader fr = null; try { fr = new FileReader(fileName); BufferedReader br = new BufferedReader(fr); String line = ""; String[] arrs = null; List<String[]> list = new ArrayList<>(); while (!"EEE".equals(line = br.readLine())) { arrs = line.split("\\|", -1); list.add(arrs); } br.close(); fr.close(); if ("0".equals(list.get(0)[0])) { XxlJobHelper.log("空文件"); return null; } else { return list; } } catch (IOException e) { e.printStackTrace(); } return null; }
时间: 2024-03-09 16:45:01 浏览: 120
jQuery实现input[type=file]多图预览上传删除等功能
可以改进的地方有:
1. 增加异常处理:应该在读取文件过程中增加异常处理,例如文件不存在或读取异常等情况,应该抛出异常并进行相应的处理。
2. 使用 try-with-resources:可以使用 try-with-resources 语句来自动关闭文件流,避免忘记关闭文件流而导致资源泄漏。
3. 增加日志记录:应该增加日志记录,方便排查错误和追踪问题。
改进后的代码如下:
```
public static List<String[]> getFileData(String fileName) {
try (FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr)) {
String line = "";
String[] arrs = null;
List<String[]> list = new ArrayList<>();
while ((line = br.readLine()) != null) {
if ("EEE".equals(line)) {
break;
}
arrs = line.split("\\|", -1);
list.add(arrs);
}
if (list.isEmpty() || "0".equals(list.get(0)[0])) {
XxlJobHelper.log("空文件或无效文件格式");
return null;
} else {
return list;
}
} catch (IOException e) {
XxlJobHelper.log("读取文件异常:" + e.getMessage());
return null;
}
}
```
改进后的代码中:
1. 使用 try-with-resources 语句自动关闭文件流。
2. 在读取文件过程中增加异常处理,并记录日志。
3. 修改了 while 循环的判断条件,使其更加简洁和易懂。
4. 增加了对空文件和无效文件格式的判断,避免出现空指针异常或其他异常。
阅读全文