下面的函数是从 /sys下面读取某个文件的内容,请指出其中的错误 public static String readSysClassFile(String sys_path) { String prop = ""; BufferedReader reader = null; try{ reader = new BufferedReader(new FileReader(sys_path)); prop = reader.readLine(); if (prop != null && prop.length() > 0){ #Substring the prop prop = pro.substring(0,15); } } } catch (IOException e){ e.printStackTrace(); }finally { if (reader != null){ try { reader.close(); }catch (IOException e){ e.printStackTrace(); } } } if (TextUtils.isEmpty(prop)){ prop= "NULL" } return prop; }
时间: 2023-12-03 11:45:05 浏览: 56
文件读取=============》读取
有以下几处错误:
1. 在 `prop = pro.substring(0,15);` 中,变量名应该是 `prop` 而不是 `pro`。
2. `prop= "NULL"` 应该加上分号,即 `prop= "NULL";`。
3. 在 `BufferedReader` 的构造函数中应该使用 `InputStreamReader` 将字节流转换为字符流,例如 `reader = new BufferedReader(new InputStreamReader(new FileInputStream(sys_path)));`。
4. 在 `reader.readLine()` 后应该先判断是否为 null,再进行后续的操作。否则,在文件为空时会出现 `NullPointerException` 异常。
正确的代码如下:
```
public static String readSysClassFile(String sys_path) {
String prop = "";
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(sys_path)));
prop = reader.readLine();
if (prop != null && prop.length() > 0) {
prop = prop.substring(0, 15);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if (TextUtils.isEmpty(prop)) {
prop = "NULL";
}
return prop;
}
```
阅读全文