getResource() zur Laufzeit in einer Datei
Habe ich einige .txt
Dateien unter der src
Ordner (in der resources
Ordner).
Aber ich kann Sie nicht erstellen Sie ein gültiges File
zur Laufzeit aus dieser Ressource.
String path = this.getClass().getResource("/resources/file.txt").getFile();
File file = new File(path);
if (!file.exists()) {
}
Ich führe mein Programm aus eclipse heraus. Ich nicht im Klassenpfad nichts.
Ich möchte, dass meine text-Dateien eingebettet werden in die .jar
Datei, wenn ich meine app, die ich wollen, packen Sie diese Dateien und kopieren Sie Sie in einem bestimmten Ort.
UPDATE
wenn ich InputStream is = getClass().getResourceAsStream("/resources/file.txt");
Bekomme ich den stream!!
Wie versuchen Sie, eine Datei zu erstellen? Verwenden Sie
Haben Sie versucht, geben den absoluten Pfad?
Sind Sie sicher, dass die txt-Datei ist das classes-Verzeichnis? Je nachdem, wie baut man dies vielleicht nicht der Fall sein.
Olarte, was meinst du, wie Baue ich es? Ich lege die Datei in diesen Ordner und führen Sie von eclipse.
keine Ausnahme !Datei.exists() ist triggerd
new File(path);
, wenn ja gibt es eine Ausnahme?Haben Sie versucht, geben den absoluten Pfad?
Sind Sie sicher, dass die txt-Datei ist das classes-Verzeichnis? Je nachdem, wie baut man dies vielleicht nicht der Fall sein.
Olarte, was meinst du, wie Baue ich es? Ich lege die Datei in diesen Ordner und führen Sie von eclipse.
keine Ausnahme !Datei.exists() ist triggerd
InformationsquelleAutor kenny | 2011-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie bereits entdeckt, die sich bald nach der Veröffentlichung Ihrer Frage, das funktioniert:
Den Grund das funktioniert, während Ihre ursprünglichen code nicht, ist da eine "Datei" inside in eine zip-Datei (eine jar-Datei ist eine zip-Datei) ist keine richtige Datei, bis Sie extrahiert wurden. Aber mit dem extrahieren der Datei ist, was Sie zu tun versuchen, so an diesem Punkt in Ihrem Programm, es ist keine richtige Datei. Also diese Frage ist ein X-Y-problem: Sie wollte ein File-Objekt, aber das war nicht möglich - Sie benötigt, um zurück zu verweisen, was Sie ursprünglich versucht, das zu tun, was gelesen wurde aus dem zip-Eintrag.
InformationsquelleAutor Robin Green
Sagte Sie, dass Sie mit eclipse, und dass Sie per Drag and Drop Ihre text-Dateien in das "src" - Paket. "src" ist nicht ein Paket. Es ist einfach eine Datei-system-Verzeichnis. Standardmäßig in ein Java-Projekt in eclipse alle Ihre source-code ist gespeichert in einem Verzeichnis namens "src" und alle Ihre .class-Dateien sind gespeichert in einem Verzeichnis namens "bin". getClass().getResource() wird zu dem Standort Ihrer .class-Dateien. Sie müssen bewegen Sie den text-Dateien in den "bin" - Verzeichnis.
Paket, was ist deine Klasse?
Ich schrieb sehr ähnlichen code, um die Ihre in der Standard-Paket und lief damit in eclipse.
Sehe ich diese Ausgabe:
bin ist, wo es sich befinden sollte. Was passiert, wenn Sie lassen Sie das /resources-Ordner im Verzeichnis bin und führen Sie das Programm? Sind Sie mit Ihrem Programm aus eclipse heraus oder sind Sie Verpacken es als jar-Datei und es läuft aus der jar-Datei?
(Das ziehen einer externen Datei/einen Ordner zu erstellen) in ein Eclipse-Projekt-Struktur unter "src" - Ordner, wo die java-source-codes befinden, werden automatisch (Kopie der Datei ins/erstellen der Ordner) "bin" - Baum, in dem die Klassen generiert werden (1:1-Beziehung). Also "/resources/file.txt" Ordner unter "src" = "/resources/file.txt" Ordner unter "bin"
Die daraus resultierende .Klasse muss sich richtig aus dem Paket Baum-Struktur "/resources/file.txt" existiert. Es sieht so aus .Klasse muss man unter "<default> Paket" Knoten in der Lage sein, um den Zugriff auf die Ressource bei "/resources/file.txt". Stellen Sie sich diese wie beim surfen über
dir
oderls
Eingabeaufforderung. Sie müssen jetzt, wo Sie relativ zu dieser Datei...ich kann nicht verstehen,... siehe mein update bitte
InformationsquelleAutor Barzee