我遇到了BufferedReader的问题。
我的源代码工作正常,但问题是当我从命名管道读取一个值时,它错过了一些值。
delim="\t";
reader = new BufferedReader(new FileReader("/tmp/base.pip"));
while ((line = reader.readLine())!=null) {
try{
timestamp = Long.parseLong(line.split(delim)[0]);
}
catch(Exception e){
continue;
}
我需要读取整行以正确获取第一列值。
原始行:12345678 A B
readed line:2345678 A B(错过第一位)
有什么建议可以解决这个问题吗?
p.s它运行正常,但只有几行有问题,如上面的例子。
答案 0 :(得分:0)
尝试将它与Whitspaces分开并取出第一个数组:
delim = "\\s";
timestamp = Long.parseLong(line.split(delim)[0]);
我认为这可以解决你的问题。
答案 1 :(得分:0)
我已经测试了您的程序,它在我的计算机上运行正常。
String delim = "\t"
tab
分隔符。line
值。如果您没有标签空间,请考虑使用接受任意数量空格的正则表达式。
String delim = "\\s+";
delim = '\t'
拆分不能将角色作为分隔符。请检查一下。它必须是delim = "\t"