2012-04-10 4 views
1

Ich glaube, ich bin wirklich nah dran, aber ich kann keine Datei öffnen, die ich LocalNews.txt genannt habe. Fehler sagt, dass die angegebene Datei nicht gefunden werden kann.Fehlermeldung, dass Datei nicht in Java geöffnet wird ... irgendeine Idee, warum das passiert?

String y = "LocalNews.txt"; 
FileInputStream fstream = new FileInputStream(y); 
DataInputStream in = new DataInputStream(fstream); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

Name der Datei in der Bibliothek genannt Nachrichten LocalNews.txt ist .... weiß jemand, warum die Datei geöffnet wird nicht?

Die Datei befindet sich im selben Java-Projekt, an dem ich gerade arbeite.

Fehler: LocalNews.txt (Das System kann die Datei nicht finden angegeben)

Projekt benannt ist Bst, Paket src in Subpackage newsFinder und Bibliothek, die die Textdateien gespeichert werden wird Nachrichten genannt.

Fand heraus, es war auf der Suche in

C: \ EclipseIndigoWorkspace1 \ Bst \ bin \ LocalNews.txt

Aber ich will es in sehen (ich glaube)

C: \ EclipseIndigoWorkspace1 \ Bst \ News \ LocalNews.txt

Aber wenn ich die obige URL eine Zeichenfolge machen, erhalte ich einen Fehler.

+0

Wenn die Datei in einem Verzeichnis anders als Ihr Arbeitsverzeichnis, müssen Sie den absoluten Pfad zu der Datei geben. – vaisakh

+0

Bitte Kopie der Ausnahme/Fehlermeldung? –

+0

Haben Sie versucht, den absoluten Pfad ('" C: /temp/yourfile.txt "' in Windows zum Beispiel) anzugeben? – assylias

Antwort

3
String y = "LocalNews.txt"; 

statt

String y = "path from root/LocalNews.txt"; //I mean the complete path of the file 
+0

Du musst Backslash umgehen. –

+0

Hier ist kein Backslash vorhanden. Und Sie müssen keinen Backslash verwenden, Schrägstriche funktionieren auch unter Windows. –

+0

@juergend sein Schrägstrich. –

2

Ihr Programm kann die Datei wahrscheinlich nicht finden, weil es in einem anderen Ordner sucht.

Versuchen Sie, einen absoluten Pfad wie

String y = "c:\\temp\\LocalNews.txt"; 
0

Verwendung mit

System.out.println(System.getProperty("user.dir")); 

um herauszufinden, was Ihr aktuelles Verzeichnis ist. Dann wissen Sie sicher, ob sich Ihre Datei im aktuellen Verzeichnis befindet oder nicht. Ist dies nicht der Fall, müssen Sie den Pfad angeben, damit er im richtigen Verzeichnis angezeigt wird.

Versuchen Sie auch, diese -

 File file = new File (y); 
    System.out.println(file.getCanonicalPath()); 

Dies wird Ihnen sagen, den genauen Pfad der Datei auf dem System, sofern die Dateien im aktuellen Verzeichnis ist. Wenn dies nicht der Fall ist, wissen Sie, dass sich Ihre Datei nicht im aktuellen Verzeichnis befindet.

2

Von 'Bibliothek namens News' Ich nehme an, Sie meinen eine Jar-Datei wie News.jar, die auf dem Klassenpfad ist und die LocalNews.txt Datei enthält, die Sie benötigen. Wenn dies der Fall ist, dann können Sie einen Inputstream für sie durch den Aufruf erhalten:

InputStream is = Thread.currentThread().getContextClassLoader() 
    .getResourceAsStream("LocalNews.txt"); 
+1

Großartiger Vorschlag. +1 –