如何将一行打印到文本文件中

时间:2015-10-18 03:28:08

标签: java

我想打印一行来计算已经写入文本文件的行数,例如:

202.32.92.47 | 271 | 200
ix-or7-27.ix.netcom.com | 205908 | 200
ram0.huji.ac.il | 271 | 200
eagle40.sasknet.sk.ca | 1116 | 200
eagle40.sasknet.sk.ca | 49649 | 200
cdc8g5.cdc.polimi.it | 461 | 200
Total number of line: 6

这是我的代码的一部分:

            Pattern string1 = Pattern.compile("usask.ca");
            Pattern string2 = Pattern.compile("128.233.");
            Pattern string3 = Pattern.compile("200");
            Matcher matcher1 = string1.matcher(sourceAddress);
            Matcher matcher2 = string2.matcher(sourceAddress);
            Matcher matcher3 = string3.matcher(responseCode);
            for (int i = 0; i < sourceAddress.length(); i++)
                if ((!matcher1.find() || !matcher2.find()) && matcher3.find()) {
                bw.write(sourceAddress + " | " + replySizeInBytes + " | " + responseCode);
                bw.newLine();
                bw.write("Total number of line: " + i);
                bw.newLine();
            }

但上面的代码实际上并没有进行计数,只是保持在1并且在每个地址后保持打印输出。我不确定我做错了什么......

2 个答案:

答案 0 :(得分:1)

您可以尝试使用Scanner并调用nextLine()以及FileHere's链接。这样的速度非常快,可以打印出行数:

public void printLineCount() throws FileNotFoundException {
    File f = new File("filename.txt");
    Scanner s = new Scanner(f);
    int i = 0;
    while(s.hasNextLine()) {
        i++;
        s.nextLine();
    }
    System.out.println("Total number of line: " + i);
}

如果您需要保留代码,请告诉我,我会更新我的回答。

答案 1 :(得分:1)

这是一个例子:

File file = new File("C:");
    try{
        PrintWriter output = new PrintWriter(file);
        output.println("ping www.google.cm");
        output.close();
    }catch(IOException ex){
        frame.setVisible(true);
        frame.setAutoRequestFocus(true);
    }