在文件中的空行

时间:2014-05-11 03:32:30

标签: java

我找不到解释,而我发现我不确定。所以请确认我的疑惑:

我正在使用while循环读取文件,如果文件中的行为空,则跳过并转到下一行。我只是想确保我使用的代码对于我刚才描述的内容是正确的:

while((strLine = reader.readLine())!= null)  <----- While loop that is suppose to read Line by Line
{           
    if (strLine.isEmpty() == false) <----- Check for empty Line
    {
        /** My Code **/
    } 
    else 
    {
    /** My Code **/
    }
}   

4 个答案:

答案 0 :(得分:1)

是肯定的。它会正常工作。

while(/* While scanner has next line */)
{
   line = scanner.nextLine();
   if( /* line is not equal to null */) {

    /* perform code */

    }
}

答案 1 :(得分:1)

是的!你在做什么是你想做的。你知道,你可以自己尝试编译它。试错。如果您无法弄清楚如何使用阅读器,正如其他答案所提出的那样,请转到:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Trial {

    public static void main(String[] args) throws IOException {
        String strLine;
        BufferedReader reader = new BufferedReader(new FileReader(
                "/home/user234/folder1/filename"));
        while ((strLine = reader.readLine()) != null) {
            if (!strLine.isEmpty()) {
                System.out.println("notEMPTY");
            } else {
                System.out.println("EMPTY");
            }
        }
    }
}

答案 2 :(得分:0)

Java Reader没有readline()方法。

如果要对令牌进行特定解析,则应使用ScannerScanner有一个nextLine()方法来获取每一行,但如果没有下一行则抛出异常。因此,您应该使用Scanner.hasNextLine()作为您的条件。

Scanner s = new Scanner("filename.txt");
String line;

while(s.hasNextLine()){                            // check for next line
    line = s.nextLine();                           // get next line
    if(line == ""){                                // check if line is empty
        System.out.println("Empty");
    } else {
        System.out.println("Not Empty:" + line);
    }
}   

这是live Example using Ideone


编辑: BufferedReader确实有readline()方法,正如@natsirun所使用的那样。虽然对于任何文件解析比读取行更复杂,但prefer the Scanner

答案 3 :(得分:0)

上述代码中显示的逻辑对您所描述的内容有意义。它应该表现你想要的。