我的代码无法得到正确的答案

时间:2015-01-28 12:56:29

标签: java

我尝试使用以下代码

从文本文件(.txt)中获取行数
package com.practice.test;

import java.io.*;    
public class FileLines {    
    public static void main(String[] args) {            
        try
        {
            File fl=new File("C:\\eGurkha\\agent\\logs\\agentout.txt");
            if(fl.exists())
            {
                FileReader fr=new FileReader(fl);
                LineNumberReader lr=new LineNumberReader(fr);
                int lineno=0;
                while(lr.readLine()!=null)
                {
                    lineno++;
                }
                System.out.println("Numer of lines in the file is : "+lineno);
                lr.close();
            }
            else
            {
                System.out.println("File does not exsist");
            }
        }
        catch(IOException ioe)
        {
            ioe.printStackTrace();
        }
    }

}

但我无法读取该文件,以下输出显示我执行上述代码时

输出

File does not exsist

帮助我....

2 个答案:

答案 0 :(得分:0)

你使用的是哪个Java版本,因为2004年有一个bug报告提到,File.exists()有时会在NFS文件系统上给出错误的结果

请参阅:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5003595

答案 1 :(得分:0)

如果您确定该文件存在,请尝试将'\'替换为'/'

在:

File fl = new File("C:\\eGurkha\\agent\\logs\\agentout.txt");

后:

File fl = new File("C:\\eGurkha/agent/logs/agentout.txt");

或者,更好:

File fl = new File("C:" + File.separator + "eGurkha" + File.separator + "agent" + File.separator + "logs" + File.separator + "agentout.txt");

File.separator:系统相关的默认名称分隔符,为方便起见,表示为字符串。此字符串包含单个字符,即File.separatorChar