Hallo und vielen Dank, dass Sie sich die Zeit genommen haben, sich diese Frage anzusehen.Zugriff auf Textdatei im Ordner für parallele Ressourcen unter Verwendung des relativen Pfads
Ich habe Probleme beim Zugriff auf eine Textdatei in einem Ordner parallel zu meinem Src-Ordner (siehe unten für Struktur).
Der nächste, den ich zu einer Erklärung gefunden habe, ist hier: https://www.cis.upenn.edu/~matuszek/cit597-2006/Pages/finding-files.html und ich bin auf viele ähnliche Fragen gestoßen, aber keine, von denen ich die Antwort auf diese leider ableiten kann.
Ich weiß, ich könnte absolute Pfade verwenden, aber ich möchte sicherstellen, dass diese Software auf den Computern anderer Leute funktioniert, so dass es ein No-Go ist. Daher versuche ich, es mit relativen Pfaden arbeiten zu lassen.
Als Bonus wird hier vorgeschlagen: https://coderanch.com/t/464197/java/java/Reading-files-directory-giving-relative dass, damit dieser Code innerhalb einer JAR-Datei funktioniert, ich getResourceAsStream() verwenden muss. Könnte jemand beraten?
Ich versuche Recipes.txt zugreifen aus RecipeReader.java, hier ist mein Code so weit:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedReader input = new BufferedReader(new FileReader(path));
und in ähnlicher Weise auf die gleiche Datei zu schreiben:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedWriter output = new BufferedWriter(new FileWriter(path));
Danke im Voraus für Ihre Hilfe!
Robin
Ausgezeichnet, vielen Dank für das Teilen. Es scheint, dass meine ursprüngliche Frage eher redundant ist, da der Benutzer einfach einen Speicherort auswählen kann, an dem er die Dateien speichern möchte. Dies mag jedoch eine kleine Frage sein, aber wie würden Sie den Dateipfad speichern, den der Benutzer in das Java-Programm eingibt, wenn es bereits kompiliert ist? Es scheint ein wenig Huhn und Ei zu sein, da Sie eine editierbare Datei an einem Ort haben müssten, von dem Sie den Speicherort Ihrer anderen bearbeitbaren Datei gelesen haben! Vielen Dank für Ihre Zeit und Ihr Wissen, es wird sehr geschätzt –
Ich verstehe Ihre Frage nicht. Können Sie mir bitte erklären, was Sie vorhaben? –