Projekte müssen häufig auf gemeinsame Ordner zugreifen, z. B. freigegebene Ordner, die Fotos, Dateien usw. speichern. Wie lesen und schreiben Sie mit Java Windows Shared -Ordner?
Java kann das JCIFS -Framework verwenden, um Windows Shared -Ordner zu lesen und zu schreiben. Mit diesem Framework können wir auf Remote -Ordner wie den Zugriff auf lokale Ordner zugreifen.
JCifs URL: http://jcifs.samba.org/
JCIFS ist ein Open -Source -Framework, das mit reinem Java entwickelt wurde und über das SMB -Protokoll auf Remote -Ordner zugreift. Dieses Framework unterstützt sowohl Windows Shared Ordner als auch Linux Shared -Ordner. Die linux -Shared -Ordner erfordern jedoch die Installation der Samba -Service -Software (offizielle Website: http://www.samba.org/).
SMB (Server Message Block) ist ein Kommunikationsprotokoll zum Teilen von Dateien und Druckern in einem lokalen Netzwerk. Es bietet Freigabedienste für Dateien, Drucker und andere Ressourcen zwischen verschiedenen Computern im lokalen Netzwerk. Das SMB -Protokoll ist ein Client/Server -Protokoll, über das Clients auf gemeinsame Dateisysteme, Drucker und andere Ressourcen auf dem Server zugreifen können. Durch Einstellen von "NetBIOS über TCP/IP" kann Samba nicht nur Ressourcen mit lokalen Netzwerkhosts, sondern auch mit Computern auf der ganzen Welt teilen.
Dieser Artikel erfährt hauptsächlich, wie man Java verwendet, um auf gemeinsame Windows auf Shared -Ordner zuzugreifen.
Suchen Sie zunächst einen Windows -Computer, erstellen Sie einen Ordner: SharedFolder an jedem Ort und setzen Sie ihn auf Freigabe und setzen Sie den freigegebenen Benutzernamen: Share, Passwort: Admin.
(So setzen Sie einen freigegebenen Ordner unter Windows 7: So setzen Sie einen gemeinsam genutzten Ordner unter Windows 7: //www.vevb.com/os/windows/78034.html)
Unabhängig davon, ob es sich um einen gemeinsam genutzten Ordner für Windows oder Linux handelt, ist der Code für die Verwendung von Java SMB zum Zugriff auf gemeinsame Nutzungsordner gleich, aber die Art und Weise, wie Windows und Linux freigegebene Ordner konfigurieren, ist unterschiedlich.
Der Testcode lautet wie folgt:
InputStream in = null; OutputStream out = null; Versuchen Sie {// Die Bilddatei localFile = new Datei ("c:/testjpg"); String remotephotourl = "smb: // share: admin@11/SharedFolder/"; // Shared Directory zum Speichern von Bildern SimpleDateFormat fmt = new SimpledateFormat ("yyyymmddhhmmssss_"); SmbFile remoteFile = new SmbFile (remotephotourl + "/" + fmtformat (neues Datum ()) + localFileGetName ()); RemoteFileConnect (); // Versuchen Sie, eine Verbindung in = new BufferedInputStream (neuer FileInputStream (LocalFile)) herzustellen; out = new bufferedOutputStream (neuer SmbFileOutputStream (RemoteFile)); byte [] buffer = neues byte [4096]; int len = 0; // LEFE LANGE IND (len = inRead (Puffer, 0, PufferLength))! = -1) {Outwrite (Puffer, 0, Len); } outflush (); // frisch Der gepufferte Ausgangsstrom} catch (Ausnahme E) {String msg = "Fehler aufgetreten:" + eGetLocalizedMessage (); Systemoutprintln (MSG); } endlich {try {if (out! = null) {outclose (); } if (in! = null) {inclose (); }} catch (Ausnahme e) {}}Im obigen Code wird die vom JCIFS -Framework bereitgestellte SMBFile -Klasse verwendet. Diese Klasse ähnelt der Java -Dateiklasse. Die Verwendung von Objekten dieser Klasse kann das Lesen und Schreiben von Remotedateien verarbeiten. Verwenden Sie das Dateiobjekt, um die lokale Datei zu lesen und dann das SmbFile -Objekt zu schreiben, um in die Remotedatei zu schreiben. Die Connect () -Methode von SMBFile kann versuchen, eine Verbindung zu einem Remote -Ordner herzustellen. Wenn das Konto oder das Passwort falsch ist, wird eine Verbindungsausnahme geworfen.
Verwenden Sie beim Herunterladen einer Remotedatei das SmbFile -Objekt, um die Remote -Datei zu lesen. Der Code ist wie folgt:
InputStream in = null; BytearrayoutputStream out = null; Versuchen Sie {// Remote -Dateiobjekt -String -String remotephotourl = "smb: // share: admin@11/SharedFolder/testjpg"; SmbFile remoteFile = new SmbFile (remotephotourl); RemoteFileConnect (); // Versuchen Sie, eine Verbindung herzustellen // Dateistream in = new BuferedInputStream (neuer SmbFileInputStream (RemoteFile)); out = new bytearrayoutputStream ((int) remoteFilelength ()); // Dateiinhaltsbyte lesen [] buffer = new byte [4096]; int len = 0; // LEFE LANGE WHOL (len = inRead (Puffer, 0, PufferLength)! } outflush (); // Spülung des gepufferten Ausgangsstroms Return Offtobytearray (); } catch (Ausnahme e) {String msg = "Fehler beim Herunterladen der Remotedatei:" + eGetLocalizedMessage (); Systemoutprintln (MSG); } endlich {try {if (out! = null) {outclose (); } if (in! = null) {inclose (); }} catch (Ausnahme e) {}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.