额。。 个人觉得 这段:
byte[] buffer = new byte[102400];
while(in.read(buffer)!=-1){
out.write(buffer);
buffer = new byte[1024];
}
第一次 new 数组的长度 是不是 多了两个0,还有 while 循环里的 buffer = new byte[1024]; 是不是可以删掉
byte[] buffer = new byte[102400];
while(in.read(buffer)!=-1){
out.write(buffer);
buffer = new byte[1024];
}
第一次 new 数组的长度 是不是 多了两个0,还有 while 循环里的 buffer = new byte[1024]; 是不是可以删掉
public static void smbGet(String remoteUrl, String localDir) {
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
SmbFile remoteFile = new SmbFile(remoteUrl);
int length = remoteFile.getContentLength();// 得到文件的大小
//System.out.println("something......");
if (remoteFile == null) {
//if(remoteFile ==null){
System.out.println("共享文件不存在或没有权限访问");
return;
}
String fileName = remoteFile.getName();
File localFile = new File(localDir + File.separator + fileName);
byte[] buffer = new byte[length];
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new FileOutputStream(localFile));
in.read(buffer);
out.write(buffer);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}具体是 in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
in.read(buffer);
out.write(buffer);
这三步慢啊~