2016-03-29 3 views
0

Я исследовал, как использовать метод сканера (поскольку я новичок в нем), и мой код выглядит точно так же, как и другие, но при этом он не находит файл. Мой .txt файл находится в папке src.Сканер не находит файл

Он выдает следующее сообщение об ошибке:

java.io.FileNotFoundException: StationInfo.txt (No such file or directory) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.util.Scanner.<init>(Scanner.java:611) 
    at traingui.code.TrainGui$1.run(TrainGui.java:37) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

Вот мой код, который реализует сканер:

package gui.code; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.swing.SwingUtilities; 

public class Gui { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      //running the gui 
      public void run() { 
       makeAndShowGUI(); 



       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
        } 



      } 

     }); 

} 
} 
+5

Ваш код не запускается из папки 'src'; используйте полный путь, загрузите его из своей домашней папки или выясните, где вы действительно используете свой код. –

+0

Если ваш файл находится в папке src, вы можете загрузить его в качестве ресурса. Обычно вы помещаете его где-то в src/main/resources, и это закончится в classpath. Затем вы можете использовать getResourceAsStream() – pandaadb

ответ

0
  1. Try абсолютный путь (например: C: \ StationInfo.txt)
  2. Попробуйте поместить этот файл в ту же папку вашего * .java-файла или при запуске приложения, попробуйте поместить этот файл в ту же папку вашего * .class файла
+0

Вот и все, но это в моей папке со всеми .java-файлами! – BlaBla

+0

Когда вы запускаете, где ваш * .class файл? – VinhNT

+0

На самом деле, благодаря его работе! – BlaBla

0

При создании экземпляра сканера из файла (с использованием new File("StationInfo.txt")) местоположение файла по умолчанию находится в папке, из которой вы вызываете команду. Попробуйте переместить файл txt в место, где вы запускаете код, или предоставить полный путь к файлу (например, new File("C:\Users\...\...\StationInfo.txt")).

0

Хотя есть много способов найти, выбрать и загрузить ресурсы в приложении, но просто если вы хотите получить файл, хранящийся в папке src, тогда вы можете попробовать выполнить код ниже.

File f = new File("src/StationInfo.txt"); 
Смежные вопросы