Java代码
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 { public static void main(String[] args) throws IOException { smbGet1(
"smb://192.168.75.204/test/新建 文本文档.txt" ); smbGet(
"smb://192.168.75.204/test/新建 文本文档.txt" , "e:/" ); }
public static void smbGet1(String remoteUrl) throws IOException { SmbFile smbFile =
new SmbFile(remoteUrl); int length = smbFile.getContentLength(); byte buffer[] = new byte [length]; SmbFileInputStream in =
new SmbFileInputStream(smbFile); while ((in.read(buffer)) != - 1 ) { System.out.write(buffer); System.out.println(buffer.length); } in.close(); }
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(
"共享文件不存在" ); 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(); } } }
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(); } } }
}
转载于:https://www.cnblogs.com/yanduanduan/p/5315196.html
相关资源:java利用SMB读取远程文件的方法