Java BufferedReader 遗漏了一些值

Java BufferedReader miss some values

我对 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

读取的行:2345678 A B(遗漏第一位)

有什么解决这个问题的建议吗?

p.s 它工作正常,但只有几行有问题,如上面的例子。

尝试用空格拆分它并从数组中取出第一个,例如:

delim = "\s";
timestamp = Long.parseLong(line.split(delim)[0]);

我认为这应该可以解决您的问题。

我已经测试了你的程序,它在我的电脑上运行良好。

  1. 检查你的外卖String delim = "\t"
  2. 检查你的文件,它们之间有一个 tab 分隔符。
  3. 检查程序中的 line 值。

如果您没有制表符 space,请考虑使用接受任意数量 space 的正则表达式。

String delim = "\s+";

delim = '\t'

split不能以字符作为分隔符。请检查一下。必须是 delim = "\t"