Datei-Pfad für die csv-Datei in Java
Habe ich ein Projekt in java, in dem ich lese in einigen csv-Daten. Ich habe den Typ in der spezifischen Weg. Jetzt würde ich gerne dieses Projekt an jemand anderen, aber er sollte nicht ändern Sie die Pfad-Informationen. Er sollte in der Lage sein, um das Projekt auszuführen, ohne etwas zu ändern im code.
Ich habe bereits den csv-Daten in meiner Quell-Datei, aber ich bekomme eine exception, wenn man versucht, auf diesem Weg.
BufferedReader in = new BufferedReader(new FileReader("text.csv"));
Exception while reading csv file: java.io.FileNotFoundException: text.csv (No such file or directory)
Ich verwende als IDE eclipse.
- Wenn die Datei nicht vorhanden ist, gibt es nicht. Betrachten Sie die Verpackung der csv-Datei in der jar als Ressource, wenn die andere person nicht brauchen, um Ihre eigenen Daten.
- Und betrachten
Class.getResource()
- Der Ansatz mit FileReader davon aus, dass die Datei vorhanden ist, im aktuellen Arbeitsverzeichnis. Sie können entweder sicherstellen, dass die Datei wirklich in das aktuelle Arbeitsverzeichnis; oder -, Paket -, wie Dave Newton erwähnt; oder stellen Sie sicher, dass die Datei irgendwo auf dem classpath und verwenden getResourceAsStream statt. Dieser Letzte Ansatz ist der empfohlene Weg, wenn das Programm in Frage kommt zu einem webapp finden Sie unter stackoverflow.com/questions/2308188/....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die Datei im Stammverzeichnis des Java-Quell-Ordner und dann stellen Sie sicher, dass die immer eingehalten werden, um Ihre Klassen-oder bin-oder Ziel-Ordner(wo sich alle kompilierten Klassen gehen). Sobald Sie dies getan haben, dann ändern Sie Ihren code wie folgt:
Beim Verpacken Ihres Projekts für die distribution, stellen Sie sicher, dass Ihre
text.csv
verpackt in den gleichen Ordner, d.h. die Wurzel der Klassen-Ordner.Ich würde übergeben Sie den Pfad von der .CSV-Datei über die Programm-Argumente in etwa so:
Und dann Zugriff auf das übergebene argument über
args
in Ihremmain
Methode:Je nach Projekt müssen nur das Programm fordert den Benutzer für eine Datei, Pfad zur CSV-Datei. Wenn es ist ein Kommandozeilen-Programm, verwenden
System.in
zu Lesen in einem Pfad-string und verwenden, die anstelle von"text.csv"
.Etwas wie:
Ich auch empfehlen, machen Sie sicher, dass eine Datei tatsächlich existiert unter dem Pfad zunächst aber lehnen Sie sich zurück und eine freundliche Meldung, anstatt nur zu werfen eine raw Ausnahme.