Datei über das Netzwerk einlesen und speichern

userSeb

Mitglied
Hallo, wie die Überschrift schon andeutet, will ich eine Textdatei, die auf einem freigegebenen Ordner liegt einlesen. Die Textdatei liegt auf einem Windows XP-System. Das Java Programm läuft unter MacOS.

Hier ist mein Codeausschnitt:

Java:
String path = \\\\192.168.0.2\\VRML\\; //"VRML" ist Ordner mit Freigabe 
String partToOpen = test;
String part = testParameter1Parameter2;

File file = new File(path + part + ".wrl");
  if (!file.exists()){
    System.out.println("file does not exist"); 
    try {
      BufferedReader in = new BufferedReader(new FileReader(path + partToOpen + ".wrl"));
				
      BufferedWriter out = new BufferedWriter(new FileWriter(path + part + ".wrl"));
			
      String str;
      while ((str = in.readLine()) != null) {
        
        //hier steht noch eine if-Bedingung, die str noch um Strings erweitert
	
        out.write(str); 
        out.newLine();
      }
      in.close();
      out.close();
    } 
    catch (IOException e) {
      e.getStackTrace();
      System.out.println(e);
    }
}

Es soll also der Inhalt einer Textdatei eingelesen, und deren Inhalt plus Erweiterungen in einer neuen Textdatei gespeichert werden. Ganz zu Anfang wird geprüft, ob es die zu erstellende Datei schon gibt...

Ich bekomme aber immer ein FileNotFoundException.

Was mache ich falsch? Wäre über jeden Denkanstoß dankbar.
 

userSeb

Mitglied
hallo, ehrlich gesagt, weiß ich es nicht.
wenn ich aber "smb://192.168.0.2/VRML" in mein Browser eingebe, wird mir der Inhalt angezeigt.

das Bsp. unter dem Link habe ich im meinem Anwendungsfall auch nicht zum laufen gebracht....
 
N

nillehammer

Gast
FileReader sind für den Zugriff auf Dateien im lokalen Dateisystem gedacht. Die Resource befindet sich aber nicht im lokalen Dateisystem (Du kannst z.B. mit dem cd-Befehl auf der Kommandozeile nicht in ein Verzeichnis wechseln, wo die Datei drinnen wäre). Deswegen kriegst Du eine FileNotFoundException.

Zwei Lösungsmöglichkeiten gibt es:
1.) Du mountest den freigegebenen Ordner in ein Verzeichnis Deines MacOS. Dann wird er Bestandteil des lokalen Dateisystems (cd klappt dann z.B. auch). Damit kannst Du dann in Java mit FileReadern arbeiten. Ist aus Sicht des Programmierers sicher die einfachere Variante.

2.) Du behandelst die Datei als das, was sie ist, nämlich eine Resource im Netzwerk, auf die man über eine URL zugreifen kann. Zur URL (\\\\192.168.0.2\\VRML\\) noch ein Hinweis: Ich glaube nicht, dass sie gültig ist. Es fehlt die Angabe des Protokolls und die Backslashes müssen Frowardslashes sein (dann natürlich nur einfach). Eine gültige URL müsste so aussehen (smb://192.168.0.2/VRML/)

Gruß nillehammer
 

userSeb

Mitglied
@dayaftereh: nein, so funktioniert es erst einmal

@nillehammer: hatte beide Varianten im Visier gehabt. War aber leider zu blöd, diese umzusetzen.

Danke euch erstmal!
 

userSeb

Mitglied
@ nillehammer nochmal:

wenn ich

Java:
URL path = new URL("smb://192.168.0.2/VRML/" + partToOpen + ".wrl");

und dann

Java:
File file = new File(path);

bekomme ich eine Exception, weil "smb:/192.168.0.2/VRML/test.wrl" nicht gefunden wird. Es werden also die slashs umgwandelt/ersetzt. Wie kann ich das umgehen, bzw. hat es was damit zu tun, dass ich das Programm unter Windows kompiliere?

Gruß
 

HoaX

Top Contributor
Nein hat nichts mit dem Kompilieren zu tun. Und eine URL und eine Datei sind nun einmal zwei Paar Stiefel. Du kannst vielleicht den Bezeichner umwandeln, aber die Daten bleiben trotzdem da wo sie sind. Java selbst kann mit den Freigaben nichts anfangen. Wenn unter Windows \\rechner\freigabe bei File(String) funktioniert, dann nur, weil Windows das entsprechend behandelt. Und nur weil dein Dateibrowser mit smb://... was anfangen kann muss das Java noch lange nicht können. Mein Internetbrowser kann ja auch http://... öffnen, mein Taschenrechner aber nicht.

Bei URL gibts iirc getInputStream() oder so, evtl. funktioniert das. Ansonsten musst du halt die Freigabe wirklich mounten, oder dir mal jcifs ansehen.
 

userSeb

Mitglied
OK, danke!

Habs jetzt über jcifs gemacht. Funktioniert alles so, wie es soll. Folgendes ist bei rausgekommen

Java:
SmbFile file = null;
String user = "chuckN";
user = user + ":";
			
String password = "*******";
password = password + "@";
			
String urlToOpen = "smb://" + user + password + serverIP + path + partToOpen + ".wrl";
urlToOpen = urlToOpen.replace("\\","/");
			
String url = "smb://" + user + password + serverIP + path + part + ".wrl";
url = url.replace("\\","/");
			
try {
	file = new SmbFile(url);
		
	if (!file.exists()){
		BufferedReader in = new BufferedReader(
						new InputStreamReader(
							new SmbFileInputStream(urlToOpen)));
						
		BufferedWriter out = new BufferedWriter(
						new OutputStreamWriter(
							new SmbFileOutputStream(url)));
						
		String str;
		while ((str = in.readLine()) != null) { 
...

VG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Datei schreiben über Applet Netzwerkprogrammierung 8
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
L Java über php datei lesen? Netzwerkprogrammierung 18
weeego Ping über CMD, Umweg über Batch Datei sparen. Netzwerkprogrammierung 17
O Mehrere Datei per DataInput/OutputStream über Socket Netzwerkprogrammierung 12
S über rmi datei übertragen? Netzwerkprogrammierung 2
J Zeilenweises auslesen aus einer Datei über Server Netzwerkprogrammierung 6
G Datei über ObjectInputStream versenden Netzwerkprogrammierung 8
A PDF über HTTP einlesen und in Datei schreiben Netzwerkprogrammierung 5
G Datei über HTTP Stream senden Netzwerkprogrammierung 4
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
J Datei Download vom Server Netzwerkprogrammierung 8
H Datei mit Anhang via http "hochladen" Netzwerkprogrammierung 16
E JCIFS - Smb - Datei kann nur von einem Benutzer bearbeitet werden Netzwerkprogrammierung 1
Aruetiise Socket Datei Endung Netzwerkprogrammierung 6
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
K HTTP Formulare füllen und Datei downloaden Netzwerkprogrammierung 23
B JSch Filetransfer ohne KnownHosts Datei? Netzwerkprogrammierung 0
A Datei erzeugen und auf der Weboberfläche downloaden (Tomcat) Netzwerkprogrammierung 4
Sogomn HTTP Datei herunterladen Netzwerkprogrammierung 13
C Inhalt einer .JPG Datei in einen OutputStream schreiben? Netzwerkprogrammierung 10
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
T Anwendungseinstellungen ohne Datei übertragen? Netzwerkprogrammierung 8
F FTP Einzelne Datei von FTP-Server überprüfen Netzwerkprogrammierung 0
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
S Datei(XML) per RMI an Server schicken Netzwerkprogrammierung 0
V Datei Download Fenster Netzwerkprogrammierung 9
C Socket Datei Übertragung Netzwerkprogrammierung 5
D Datei hochladen zu PHP Server Netzwerkprogrammierung 8
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
T Datei downloaden ohne den Dateinamen zu kennen Netzwerkprogrammierung 2
H Datei in DropBox schreiben Netzwerkprogrammierung 23
V Datei auf Server Schreiben Netzwerkprogrammierung 18
N Einen Server als ausführbare Datei exportieren Netzwerkprogrammierung 15
B FTP Datei auslesen ohne einloggen möglich? Netzwerkprogrammierung 19
C Datei auf server speichern Netzwerkprogrammierung 16
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
W Datei automatisiert kopieren! Netzwerkprogrammierung 5
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
G Txt datei von Website downloaden Netzwerkprogrammierung 8
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
I HTTP Datei Uploaden mit http und Sprache anpassen Netzwerkprogrammierung 7
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
S ActiveMQ, JMS und Datei übertragen Netzwerkprogrammierung 25
U Web Datei downloaden und bei Änderungen wieder zurückspielen Netzwerkprogrammierung 5
M Class-Datei aus Eclipse mit Xampp Netzwerkprogrammierung 4
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
B Zugriff auf eine Text- und XML-Datei Netzwerkprogrammierung 4
Dit_ FTP, Datei Hochladen Netzwerkprogrammierung 4
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
P Name der Download-Datei ermitteln Netzwerkprogrammierung 8
N Socket TCP Datei Transfer Netzwerkprogrammierung 2
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
L Größe einer Datei auslesen die im Netz liegt Netzwerkprogrammierung 4
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
S StringArray in .txt Datei --> langsam wegen Client/Server!? Netzwerkprogrammierung 16
S Bild-Datei von Servlet an Browser senden Netzwerkprogrammierung 8
U Datei via UDP Netzwerkprogrammierung 8
C Dateigröße einer Datei im Internet ermitteln Netzwerkprogrammierung 2
S Error 404 obwohl die Datei existiert Netzwerkprogrammierung 9
T Datei Herunterladen und ausführen Netzwerkprogrammierung 5
S Mittels Java XML abfragen und nicht die Ausgabe-HTML-Datei Netzwerkprogrammierung 5
C PCAP Datei auslesen Netzwerkprogrammierung 8
F Applet Datei Zugriff Netzwerkprogrammierung 13
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
M [Commons NET] Prüfen, ob auf FTP Datei vorhanden ist Netzwerkprogrammierung 2
Rontu Problem beim Übertragen einer Datei Netzwerkprogrammierung 9
E Größe der Datei vor Download ermitteln Netzwerkprogrammierung 3
C Dateiübertragung - Datei immer ein 4096faches von n Netzwerkprogrammierung 2
E Applet zum Datei-Upload Netzwerkprogrammierung 3
A FileChannel+SocketChannel:Datei wird nur teilweise übertrage Netzwerkprogrammierung 4
J Gibts die Datei? Netzwerkprogrammierung 3
K Datei-Upload per FTP Netzwerkprogrammierung 2
G Fehlermeldung beim Erzeugen der WSDL Datei unter Axis Netzwerkprogrammierung 2
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
B Umfangreiche Batch Datei (Rmiregistry prüfung + Prog. start) Netzwerkprogrammierung 4
V Einen Eintrag aus einer Zip Datei von einem Server laden Netzwerkprogrammierung 2
M Datei auf einem Server ausführen Netzwerkprogrammierung 4
N Dateigröße einer Datei auf einem HTTP-/Web-Server. Netzwerkprogrammierung 9
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
F Datei senden und empfangen Netzwerkprogrammierung 4
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
B knacken bei download von mp3 datei Netzwerkprogrammierung 2
T Datei senden Netzwerkprogrammierung 3
M Datei auf Remoteserver kopieren Netzwerkprogrammierung 8
B Datei speichern unter Netzwerkprogrammierung 10
B Laden einer *.csv Datei von einem Webserver (http-request) Netzwerkprogrammierung 8
R In Text Datei schreiben die auf einem Server liegt Netzwerkprogrammierung 8
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben