请救一个关于JAVA中的模式匹配问题:我需要读取的文件大概有30MB左右,我现在想从文件中按行读取,然后按正则表达式进行匹配我需要的数据。
但是文件并不规则,当文件中含有空行。程序就不会往下读取了。不清楚在JAVA中怎么按行读取呀?
核心代码如下:
try{
BufferedReader bufferedreader =new BufferedReader(new FileReader(file));
String readline =bufferedreader.readLine();
while(readline!=null){
System.out.println(readline);
}
bufferedreader.close();

解决方案 »

  1.   

    你写的有问题,readline如果有值会死循环的.
    try{
       BufferedReader bufferedreader =new BufferedReader(new FileReader(file));
       String readline="";
       while(readline=bufferedreader.readLine()!=null){
         System.out.println(readline);
       }
    ...
      

  2.   


    StringBuffer strb = new StringBuffer();while((myString=myBufferedReader.readLine())!=null)
    {
        strb.append(myString);
        strb.append("\n"); //由于readLine会消除换行符,这里需要手工加入

    String content = strb.toString();
      

  3.   

    哈哈,谢谢楼上的朋友。
    我再请教下一个问题,在这个文件中有这么一段内容:
     CDMA-CS-L
              000022976 000020822 000000000 000000000 000000000
    我现在想匹配最后一组数据:000000000,请问怎么匹配呀?
    我写的是:^ CDMA-CS-L\\s+$.*(\\d{9})\\s\\d{9}\\s\\d{9}\\s\\d{9}\\s\\d{9}
      

  4.   

    这还用写正则么?直接split就好了
      

  5.   

    split是以指定的模式将指定的字符串进行切分,其实都要用到模式,请问这个正则表达式怎么写?多谢