【发布时间】:2017-11-18 01:51:23
【问题描述】:
我正在尝试在 Android 6 中读取 /proc/net/xt_qtaguid/stats。
使用cat 命令,我得到了这个:
2 a0 0 0 123456 311 48329 737 48 1
3 b0 0 0 0 0 0 0 0
4 c0 123456 311 48329 737 48 1
5 d0 111111 111 22222 222 33 1
我的 java 代码尝试逐行读取文件:
File sysDataFile = new File(PATH_TO_FILE);
BufferedReader bufReader = null;
FileReader fileReader = null;
try {
fileReader = new FileReader(sysDataFile);
bufReader = new BufferedReader(fileReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
// print to console each line
System.out.println("Line: " + line);
}
} catch (IOException e) {
System.out.println("IOException thrown!");
} finally {
bufReader.close();
fileReader.close();
}
当我运行上面的代码时,它只打印出控制台的前两行:
Line: 2 a0 0 0 123456 311 48329 737 48 1
Line: 3 b0 0 0 0 0 0 0 0
为什么?
【问题讨论】:
-
是的,肯定是同一个文件,我想可能是第二行以一些隐藏的特殊字符结尾,阻止了代码继续阅读,但我不确定,这就是我在这里问的原因。
-
尝试 xxd 命令以十六进制显示文件。 details here
-
@B.Bri,然后???
-
您是否要读取
/proc/下的文件?这些是特殊的,具有特殊权限和大小报告为 0,这可能会绊倒 Java 的读者(请参阅this question,尽管它没有很好的答案)......我没有设法重现它,即使使用旧的 Java 7 . 如果您能具体说明这是什么文件、您的内核版本和 java 版本,也许会有所帮助。
标签: java android bufferedreader filereader java-io