2015-01-28 2 views
-7

Я пытался получить количество строк из текстового файла (.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 

помочь мне ....

+0

Вы уверены, что этот файл существует? – roeygol

+1

Да, этот файл находится в этом месте ... – kaviarasu

+0

И файл существует, и у вас есть права на чтение? – Jens

ответ

0

Если вы уверены, что файл существует, попробуйте заменить char '\' на '/'.

До:

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.

+0

@kaviarasu Поскольку вы приняли этот ответ как правильный, я хотел бы знать, действительно ли это решило вашу проблему. Обычно оба '/' и '\\\' должны работать одинаково, по крайней мере на Windows –

+0

@Andreas - Всегда используйте 'File.separator'. Это правильный путь для реализации независимой от платформы программы. –

+0

Это зависит от варианта использования. Если разделитель файлов виден конечному пользователю, я согласен. Но в любом случае это не объясняет вопрос из вопроса. 'File.exists()' должен возвращать то же самое с любым разделителем файлов. –

Смежные вопросы