2017-08-31 1 views
1

In dem folgenden Programm versuche ich aus dem Hw1_1.java Quellcode zu lesen. Ich bekomme jedes Mal eine FileNotFoundException (wahrscheinlich aus einem guten Grund). Ich weiß, dass das Programm nicht vollständig ist, da ich nur versuche, die Ausnahme zu stoppen. Ich bin ratlos.FileNotFoundException für eine Datei, die ich weiß, ist im Verzeichnis

Wenn mir jemand in die richtige Richtung zeigen könnte, würde ich es sehr schätzen.

package hw1_1; 

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

public class Hw1_1 { 

    public static void main(String[] args) throws FileNotFoundException { 

     Scanner console = new Scanner(System.in); 
     System.out.println("Please enter the name of a java source code file"); 

     String inputFileName = console.next(); 
     String outputFileName = (inputFileName + ".txt"); 

     try { 

      File inputFile = new File(inputFileName); 
      Scanner in = new Scanner(inputFile); 
      PrintWriter out = new PrintWriter(outputFileName); 

      while (in .hasNextLine()) { 
       String line = console.nextLine(); 
       out.println(line); 
      } 

      in .close(); 
      out.close(); 

     } catch (FileNotFoundException exception) { 
      System.out.println("File Not Found"); 
     } 
    } 
} 
+4

Laufen Sie von einer IDE? Wenn dies der Fall ist, werden Sie möglicherweise von einem unerwarteten Ort aus gestartet. Versuchen Sie einen absoluten Pfad zu der Datei zu verwenden –

+0

Vielleicht: 'String line = console.nextLine();' sollte sein: 'String line = in.nextLine();' – DevilsHnd

+1

Offensichtlich befindet sich die Datei nicht dort, wo das Java-Programm sucht es. Versuchen Sie, den Wert von 'System.getProperty (" user.dir ")' auszudrucken, um das aktuelle Verzeichnis anzuzeigen. Drucken Sie außerdem den Dateinamen aus, um sicherzustellen, dass Sie nach dem suchen, wonach Sie suchen. Oder besser, gehen Sie durch den Code in und IDE-Debugger. –

Antwort

-1

Sie müssen in Ihren Code der Pfad Komplexität bewusst sein, vor allem, wenn Sie IDE als IDE verwenden

einem anderen Ausführungspfad haben

Basierend auf Ihren Code, wenn der Wert inputFileName nur die Datei Name (sagen wir mal, log.txt) und der Ausführungspfad tatsächlich anders ist, dann wird Ihr Code nie den Weg finden

der schnellste und schmutzige Lösung, um schnell zu beweisen dies den vollständigen absoluten Pfad als Wert zu verwenden ist inputFileName zum Beispiel:

String inputFileName = "/var/tmp/log.txt" 

oder

String inputFileName = "C:/workspace/temp/log.txt" 

Sobald dies stellt sicher, dass Ihr Code die Datei lesen können, dann können Sie beginnen, den Weg Problem Handling, viel Glück.

0

Es ist wirklich eine gute Idee - zuerst das Benutzerverzeichnis Ihres Java-Programms zu überprüfen. Sobald Sie wissen, können Sie das FileNotFoundException-Problem problemlos debuggen.

Sie können das Benutzerverzeichnis einfach aus dem folgenden Code drucken.

Die Verwendung des absoluten Pfads für die Datei ist eine andere Möglichkeit, das Problem zu lösen, aber das ist ein etwas unregelmäßiger Weg.

Verwandte Themen