2016-11-28 2 views
-1

Когда я ввожу полный путь к файлу (C: \ Users \ djustinwebb \ Documents \ BlueJ Projects \ LightHouse) для поиска, и он пытается открыть файл, я получаю ошибку: java.io.FileNotFoundException: C: \ Пользователи \ djustinwebb \ Documents \ BlueJ Projects \ LightHouse (доступ запрещен) (в java.io.FileInputStream)Как избежать этого java.io.FileNotFoundException?

У меня есть вход «invoicedata.txt» для поиска, и он работал, даже если он не читает файл но я хотел бы знать, почему это не сработает, когда я использую полный путь к файлу. Что мне нужно сделать, чтобы использовать полный путь к файлу без использования этой ошибки?

public String searchCase()throws FileNotFoundException 
{ 
    String fileLine = null; 

    StringTokenizer stok = null; 

    Scanner inputFile = new Scanner(new File(search)); 


    String whatever = null; 



    while(inputFile.hasNextLine()) 
    { 
     fileLine = inputFile.nextLine(); 
     stok = new StringTokenizer(fileLine,","); 

     caseLCount++; 

     while(stok.hasMoreTokens()) 
     { 
      if(userWord.equals(stok.nextToken())) 
      { 
       caseWCount++; 

       whatever += caseLCount + ".\n"; 
      }//end if 
     }// end nested while 
    }//end outer while 
    inputFile.close(); 
    return whatever; 
}// end searchCase() 
+0

Действительно ли файл существует на этом пути? Можете ли вы открыть файл из другой программы? Попробуйте запустить Java-процесс в режиме администратора. –

+0

похоже разрешение выпуск. тот факт, что он дал отказ в доступе, означает, что он попытался открыть файл – Mox

ответ

3

Это происходит потому, что вы пытаетесь открыть и прочитать directory, который LightHouse здесь. Вы также должны ввести имя файла в путь к файлу, например, ..\LightHouse\invoicedata.txt.

Если вы хотите различать файлы и папки, используйте методы isFile() и isDirectory(). Вы можете получить содержимое папок, используя методы list() и listFiles().

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