2017-11-21 4 views
0

Am selben Verzeichnis meiner Main.java Datei, habe ich ein Paket/Ordner Datenbank und in dem Datenbank-Paket Ich habe eine Datei Data.txt Namen benannt.Wie kann ich eine Datei aus einem relativen Pfad meiner Main-Klasse in Java lesen?

Dies ist mein Code von Main.java, aber es wirft diesen Fehler:

java: exception java.io.FileNotFoundException

Wie kann ich die Datei von einer relativen Datei erhalten? Ich bin es gewohnt, Web-Entwicklung, und normalerweise etwas mit einem. Punkt wie "./folder/file.txt" funktioniert.

import java.io.File; 
import java.util.Scanner; 
import java.io.FileNotFoundException; 

    public class Main { 

     public static void main(String[] args) { 

      readFile(); 

     } 

     public static void readFile() { 

      File file = new File("./database/Data.txt"); 
      Scanner scanner = new Scanner(file); 

      try { 

       while (scanner.hasNextLine()) { 
        int i = scanner.nextInt(); 
        System.out.println(i); 
       } 
       scanner.close(); 
      } 
      catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 

     } 

    } 
+0

Sie führen Main.java nicht aus. Sie führen Main.class aus, das sich in einem anderen Ordner befindet. – shmosel

+0

Zeigen Sie uns Ihre Ordnerstruktur. Ansonsten können wir nur raten. – Zabuza

+0

Ich habe in der Frage geschrieben ... –

Antwort

0

Sie importieren die FileNotFoundException-Klasse nicht. Außerdem löst die Scanner-Anweisung die Ausnahme aus, die sie versuchen sollte. Lösung ist wie folgt.

import java.io.File; 
import java.util.Scanner; 
import java.io.FileNotFoundException; 

public class Main { 

    public static void main(String[] args) { 

     readFile(); 

    } 

    public static void readFile() { 

     File file = new File("database/Data.txt"); 

     try { 
      Scanner scanner = new Scanner(file); 
      while (scanner.hasNextLine()) { 
       int i = scanner.nextInt(); 
       System.out.println(i); 
      } 
      scanner.close(); 
     }catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

    } 

} 

Nur überprüfen, ob diese Inhalte mit dem Scanner gelesen werden können oder nicht. Inhalt hat int richtig. Andernfalls wird java.util.InputMismatchException ausgelöst.

+0

Es funktioniert nicht. –

+0

Was sind Daten in Data.txt? –

+0

UTF-8-Text. ... –

Verwandte Themen