This example shares the specific code of Java using SMB to read remote files for your reference. The specific content is as follows
package com.yss.test.FileReadWriter; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; import jcifs.smb.SmbFileOutputStream; public class RemoteAccessData { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { smbGet1("smb://192.168.75.204/test/New text document.txt"); smbGet("smb://192.168.75.204/test/New text document.txt","e:/"); } /** * Method 1: * * @param remoteUrl * Remote path smb://192.168.75.204/test/New text document.txt * @throws IOException */ public static void smbGet1(String remoteUrl) throws IOException { SmbFile smbFile = new SmbFile(remoteUrl); int length = smbFile.getContentLength();// Get the file size byte buffer[] = new byte[length]; SmbFileInputStream in = new SmbFileInputStream(smbFile); // Create smb file input stream while ((in.read(buffer)) != -1) { System.out.write(buffer); System.out.println(buffer.length); } in.close(); } // Download file from the shared directory/** * Method 2: * Path format: smb://192.168.75.204/test/ Create a new text document.txt * smb://username:[email protected]/test * @param remoteUrl * Remote path * @param localDir * Local path to write*/ public static void smbGet(String remoteUrl, String localDir) { InputStream in = null; OutputStream out = null; try { SmbFile remoteFile = new SmbFile(remoteUrl); if (remoteFile == null) { System.out.println("Shared file does not exist"); return; } String fileName = remoteFile.getName(); File localFile = new File(localDir + File.separator + fileName); in = new BufferedInputStream(new SmbFileInputStream(remoteFile)); out = new BufferedOutputStream(new FileOutputStream(localFile)); byte[] buffer = new byte[1024]; while (in.read(buffer) != -1) { out.write(buffer); buffer = new byte[1024]; } } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } } // Upload file public static void smbPut(String remoteUrl, String localFilePath) { InputStream in = null; OutputStream out = null; try { File localFile = new File(localFilePath); String fileName = localFile.getName(); SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName); in = new BufferedInputStream(new FileInputStream(localFile)); out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile)); byte[] buffer = new byte[1024]; while (in.read(buffer) != -1) { out.write(buffer); buffer = new byte[1024]; } } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } } // Remote url smb://192.168.0.77/test // If you need a username and password, just like this: // smb://username:[email protected]/test }The above is all the content of this article. I hope it will be helpful to everyone's learning and I hope everyone will support Wulin.com more.