Auf einem USB-Stick gespeicherte Text-Datei öffnen

Status
Nicht offen für weitere Antworten.

dpgc2006

Mitglied
Hallo zusammen,


ich bin ein blutiger Anfänger was das Programmieren in Java angeht und ich hoffe ihr könnt mir ein wenig auf die Sprünge helfen.

Nun zu meinem Problem:
Ich versuche eine Java-Applikation zu programmieren, die auf einem USB-Stick gespeichert sein soll, und auch von dort aus gestartet werden soll.
Ich habe nun einen Menüeintrag "jMenuItem_Test".
Beim Klicken auf diesen Menüeintrag soll eine Textdatei "Test.txt" extern geöffnet werden.
Diese Textdatei ist ebenfalls auf dem USB-Stick gespeichert (H:\Test.txt).

Ich habe folgenden Ansatz gewählt:

Code:
private void jMenuItem_TestActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    try { 
        File Pfad = new File("H:\\Test.txt");
        Desktop.getDesktop().open(Pfad);
    } 
    catch ( Exception e ) {
    }
}

Das ganze funktioniert so leider nicht.
Aber wenn ich die Textdatei auf meiner Festplatte speichere (also C:\Test.txt), dann klappt es einwandfrei.
Es scheint also nur von meinem USB-Stick aus nicht zu gehen.

Hat jemand von euch eine Idee wie ich mein Problem lösen könnte?
(Die Textdatei dient übrigens nur als Beispiel. Es könnte sich auch um andere Dateien (pdf, etc.) handeln)


Vielen Dank im Voraus.
 

0x7F800000

Top Contributor
naja, ob der stick jetzt "H" oder "J" "K" "L" "M" "N" benannt wird, kannst du nicht beeinflüssen, das ist vom rechner zu rechner verschieden. Versuch es einfach mit einer relativen pfadangabe. imho dürftest du einfach nur "Text.txt" angeben, solange das programm und die textdatei im selben ordner liegen.
 

dpgc2006

Mitglied
Andrey hat gesagt.:
naja, ob der stick jetzt "H" oder "J" "K" "L" "M" "N" benannt wird, kannst du nicht beeinflüssen, das ist vom rechner zu rechner verschieden. Versuch es einfach mit einer relativen pfadangabe. imho dürftest du einfach nur "Text.txt" angeben, solange das programm und die textdatei im selben ordner liegen.

Danke für deine schnelle Antwort.
Ich habe es bereits mit einer relativen Pfadangabe versucht. Das sollte dann letztendlich auch das Ziel sein, denn
wie du schon gesagt hast, kann man den Laufwerksbuchstaben nicht beeinflussen.
Das funktioniert aber leider auch nicht, zumindest solange sich Applikation und Textdatei auf dem USB-Stick befinden.
Befinden sie sich jedoch auf der Festplatte, so funktioniert es sowohl mit absoluter als auch mit relativer Pfadangabe.
Ich frage mich nun weshalb das so ist und ob man das Problem nicht irgendwie umgehen kann.
 

0x7F800000

Top Contributor
in welchem zustand überträgst du denn das programm auf den stick? hast du das in irgendeine .jar gepackt oder wie sieht es denn aus? ich weiss es ehrlichgesagt nicht so genau wie das bei den applikationen überhaupt aussieht, schreib schon seit langem alles als applets :oops:
 

dpgc2006

Mitglied
Andrey hat gesagt.:
in welchem zustand überträgst du denn das programm auf den stick? hast du das in irgendeine .jar gepackt oder wie sieht es denn aus? ich weiss es ehrlichgesagt nicht so genau wie das bei den applikationen überhaupt aussieht, schreib schon seit langem alles als applets :oops:

Ganz genau, die Applikation ist als jar-Datei auf dem Stick gespeichert.
 

Wildcard

Top Contributor
Ein relativer Pfad bezieht sich immer auf den Ort von dem das Programm ausgeführt wird, nicht auf den Ort, wo das Programm liegt.
 

dpgc2006

Mitglied
Wildcard hat gesagt.:
Ein relativer Pfad bezieht sich immer auf den Ort von dem das Programm ausgeführt wird, nicht auf den Ort, wo das Programm liegt.

Sorry, aber das verstehe ich jetzt nicht ganz. Wird das Programm nicht immer von dort ausgeführt wo es liegt?
Jedenfalls hilft mir das jetzt auch nicht weiter, denn wenn ich den Pfad relativ angebe...

Code:
File Pfad = new File("Test.txt");

...und den Pfad zur Kontrolle auf der Konsole ausgebe...

Code:
System.out.println(Pfad.getCanonicalPath());

...erhalte ich den korrekten Pfad ausgegeben, also H:\Test.txt
Dennoch wird die Datei nicht geöffnet.
 

Wildcard

Top Contributor
dpgc2006 hat gesagt.:
Sorry, aber das verstehe ich jetzt nicht ganz. Wird das Programm nicht immer von dort ausgeführt wo es liegt?
Jedenfalls hilft mir das jetzt auch nicht weiter, denn wenn ich den Pfad relativ angebe...
Nein, wird es nicht. Daher lohnt es vermutlich auch nicht weiter über dein Problem nach zu sinnen
 

dpgc2006

Mitglied
Kann mir denn keiner helfen? Ich weiss echt nicht mehr weiter.
Ich hab in den letzten paar Tagen in allen möglichen Büchern und Foren gelesen, aber nirgends Antwort gefunden.

Ich weiss nur, dass der Pfad meiner Textdatei definitiv stimmt.
Es wird auch keine Exception geworfen. Aber die Datei wird trotzdem nicht geöffnet.

Ansonsten: Kann mir jemand vielleicht noch eine Möglichkeit sagen, wie man Dateien in Java plattformunabhängig öffnen kann.

Dankeschön.
 

Final_guy

Aktives Mitglied
Hi dpgc2006,
dpgc2006 hat gesagt.:
Ich weiss nur, dass der Pfad meiner Textdatei definitiv stimmt. Es wird auch keine Exception geworfen. Aber die Datei wird trotzdem nicht geöffnet.
In deinem erste Codebeispiel hast Du die Excpetion ja auch ignoriert. Kannst du vielleicht noch mal einen Auszug aus dem aktuellen Code posten? Was bedeutet in diesem Zusammenhang "wird nicht geöffnet" konkret?
Die Tatsache, dass die Ausgabe des Pfades auf der File-Instanz den korrekten Wert ergibt, sollte ja nicht überraschen, wenn Du das Objekt auch mit diesem Pfad im Konstruktor erzeugt hast. ;) Man muss sich immer vor Augen halten, dass eine java.io.File-Instanz stest nur eine abstrakte Repräsentation einer Datei darstellt.


dpgc2006 hat gesagt.:
Ansonsten: Kann mir jemand vielleicht noch eine Möglichkeit sagen, wie man Dateien in Java plattformunabhängig öffnen kann.
Dankeschön.
Ein plattformunabhängiges Öffnen von Dateien mit Java ist eine Tautologie, denn Java kann Dateien ausschließlich auf diese Weise "öffnen". Das Problem besteht in deinem Fall darin, dass das USB-Subsystem der Plattform eben sehr plattformabhängig ist und Java daher von sich aus erstmal keine Unterstützung für USB liefert.


Jeff Friesen hat gesagt.:
Although the Universal Serial Bus (USB) is an integral part of many computers, Java does not officially support USB. Getting your Java programs to interact with arbitrary USB devices thus requires either a third-party Java/USB API or your own Java/USB API. This article introduces two third-party APIs and my own API, which provides a partial USB interaction.
Dieser Absatz stammt aus eineme Artikel, den Du unter http://today.java.net/pub/a/today/2006/07/06/java-and-usb.html findest und der u.a. mit deinem Problem beschäftigt. Ansonsten kannst Du auch einfach mal weiter in Richtung "Java USB-Unterstützung" recherchieren. Vielleicht magst Du ja auch deine Erfahrungen wieder hier posten - dann haben alle was davon. :)

Ich hoffe, ich konnte Dir ein wenig helfen.
 

HoaX

Top Contributor
Final_guy hat gesagt.:
dpgc2006 hat gesagt.:
Ansonsten: Kann mir jemand vielleicht noch eine Möglichkeit sagen, wie man Dateien in Java plattformunabhängig öffnen kann.
Dankeschön.
Ein plattformunabhängiges Öffnen von Dateien mit Java ist eine Tautologie, denn Java kann Dateien ausschließlich auf diese Weise "öffnen". Das Problem besteht in deinem Fall darin, dass das USB-Subsystem der Plattform eben sehr plattformabhängig ist und Java daher von sich aus erstmal keine Unterstützung für USB liefert.

Jeff Friesen hat gesagt.:
Although the Universal Serial Bus (USB) is an integral part of many computers, Java does not officially support USB. Getting your Java programs to interact with arbitrary USB devices thus requires either a third-party Java/USB API or your own Java/USB API. This article introduces two third-party APIs and my own API, which provides a partial USB interaction.
Dieser Absatz stammt aus eineme Artikel, den Du unter http://today.java.net/pub/a/today/2006/07/06/java-and-usb.html findest und der u.a. mit deinem Problem beschäftigt. Ansonsten kannst Du auch einfach mal weiter in Richtung "Java USB-Unterstützung" recherchieren. Vielleicht magst Du ja auch deine Erfahrungen wieder hier posten - dann haben alle was davon. :)

Ich hoffe, ich konnte Dir ein wenig helfen.

kannst du bitte den absatz nennen der mit diesem problem zu tun hat? java ist es wurst ob das n usbstick ist oder was auch immer, es sieht nur ein dateisystem.

@dpgc2006: mach in deinen catch-block ein e.printStackTrace(), die exceptions werden nicht zum spaß geworfen. du willst dir nicht von java sagen lassen was falsch läuft aber fragst uns "hellseher"
 

Final_guy

Aktives Mitglied
Hmmm, stimmt. Bei etwas konzentrierterem Nachdenken würde ich Dir Recht geben, dass es ab dem Zeitpunkt, an dem das Betriebssystem das USB-Gerät in die Dateihierarchie eingebunden hat, Java egal sein dürfte, ob es sich um lokale Datenträger oder externe handelt. Daher war meine Antwort mit dem Artikel über den zugriff auf USB-Geräte im Allgemeinen wohl ein wenig irreführend (wenn auch in der Sache nicht falsch - nur leider im falschen Kontext :D). Ich entschuldige mich, dass ich für Verwirrung gesorgt habe.

Das Thema Exception fangen und Inhalt ausgeben hatte ich ja auch bereits erwähnt. Kam denn eine aussagekräftige Fehlermeldung heraus?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
U Char zu einem String machen Java Basics - Anfänger-Themen 1
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
Kotelettklopfer Mehrere Projekte in einem Git verwalten Java Basics - Anfänger-Themen 10
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Auswahl bei einem Videoverleih limitieren Java Basics - Anfänger-Themen 4
B Quicksort in Verbindung mit einem Projekt Java Basics - Anfänger-Themen 1
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
O Java Weinachtsbaum in einem Bilderramen Java Basics - Anfänger-Themen 5
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
Y Wie greift man auf die Knoten in einem Binärbaum zu? Java Basics - Anfänger-Themen 5
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
J Lösungen zu einem Lückentext finden Java Basics - Anfänger-Themen 0
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
L Alle Ziele in einem Raster abknallen Java Basics - Anfänger-Themen 17
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
H 3 Comparatoren zu einem zusammenfassen - Chaining... Java Basics - Anfänger-Themen 15
N LocalTime einem Objekt zuweisen Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben