日期:2014-05-19  浏览次数:20846 次

Java中readLine方法如何忽略行中的回车符\r
目前有这样一个需求,一个很大的数据文件中每行代表一条记录,各个记录之间以\3分隔,行之间以\n分隔。我需要一行一行的读取,之后分隔各个字段,做一些统计的工作。但是现在有这样一个问题,有的记录中的某个字段的结尾可能含有回车符\r,例如:abc\3def\3ghi\r\3jkl\3mno\n
这样的话用readline方法,不管遇到\r或\n或\r\n都会当作行的分隔符,从而造成这一行数据从中间断开。readline中有一个重载的方法可以忽略掉换行\n,但对于回车\r有什么方法能够忽略掉这个字符吗?

我尝试过用read一个字符一个字符的读取,然后判断是否为\r,是的话忽略继续读下一个字符,然后遇到\n的话再处理这一行。但文件很大,这样操作太慢了,有什么好的解决办法吗?

------解决方案--------------------
写好了吗??
我写了个类,您看看可以用不??

我放在我的blog里了。
http://goro.iteye.com/admin/blogs/1633979