在java中读取文件时忽略一行

时间:2011-03-23 03:26:37

标签: java

我有一些代码来读取文件中的行,我想知道当行开始或者fisrt字符(非空白)是'*'并忽略它时,所以在while语句中添加

之类的东西
if(line[0]=='*') 
   ignore that line

我有类似的东西:

   input = new BufferedReader(new FileReader(new File(finaName)));
    String line = null;
    while ((line = input.readLine()) != null) {
    String[] words = line.split(" "); 
        .... 
    }

如何完成代码?

3 个答案:

答案 0 :(得分:4)

input = new BufferedReader(new FileReader(new File(finaName)));
String line = null;
while ((line = input.readLine()) != null) {
  if(line.trim().indexOf('*') == 0)
    continue;
  String[] words = line.split(" "); 
    .... 
}

答案 1 :(得分:2)

将while循环更改为:

while((line = input.readLine()) != null){
   if(!line.startsWith("*")){
      String[] words = line.split(" ");
      ....
   }
}

修改

如果“*”不在行的开头但在行的某个位置,请使用以下

if(line.indexOf("*") == position){
   ......
}

其中position可以是一个整数,指定您感兴趣的位置。

答案 2 :(得分:1)

假设*标记和行尾注释,此循环将保留该行之前所需的任何内容。

    input = new BufferedReader(new FileReader(new File(finaName)));
    String line = null;
    char[] lineChars;
    while ((line = input.readLine()) != null) {
        lineChars = line.toCharArray();
        line = "";
        for(char c: lineChars){
            if(c == '*')break;
            line.concat(Character.toString(c));
        }
        if(!line.equals(""))
        String[] words = line.split(" ");           
    }