Java 我不能';我的代码没有得到正确的答案
我尝试使用以下代码从文本文件(.txt)中获取行数Java 我不能';我的代码没有得到正确的答案,java,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.t
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
请帮助我……您使用的是哪个Java版本,正如2004年的一份错误报告所提到的,
File.exists()
有时在NFS文件系统上给出错误的结果
请参阅:如果确定文件存在,请尝试将字符'\'
替换为'/'
之前:
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
:与系统相关的默认名称分隔符字符,为方便起见表示为字符串。此字符串包含一个字符,即文件。separatorChar
是否确实存在此文件?是的,该文件位于该位置…并且该文件存在并且您对其具有读取权限?该文件位于该位置。
-您是如何检查的?你能在命令shell上用dir
检查一下并向我们展示输出吗?@kaviarasu既然你接受了这个正确的答案,我想知道这是否真的解决了你的问题。通常,/
和`\\`都应该以相同的方式工作,至少在Windows@Andreas-始终使用File.separator
。是执行独立于平台的程序的正确方法。这取决于用例。如果文件分隔符对最终用户可见,我同意。但无论如何,这并不能从问题中解释问题File.exists()
应该返回相同的文件分隔符。@Andreas-例如,我使用Linux(Debian)和System.out.println((新文件(“/home/biagio/Java Workspace”).exists()
打印出true
,但是System.out.println((新文件(“/home\\biagio\\Java Workspace”)).exists()代码>打印出false
。在本例中,Linux不允许使用“\`分隔符。是的,您在Linux/Unix上是正确的,但OP显然在Windows上。这就是我好奇的原因,但无论如何。。。