下载NAS存储文件,一直保错transport closed in negotiate
public static void smbGet(String shareUrl, String localDirectory) throws Exception {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(USER_DOMAIN, USER_ACCOUNT,
USER_PWS);
SmbFile remoteFile = new SmbFile(shareUrl, auth);
if (!remoteFile.exists()) {
System.out.println("共享文件不存在");
return;
}
// 有文件的时候再初始化输入输出流
InputStream in = null;
OutputStream out = null;
System.out.println("下载共享目录的文件 shareUrl 到 localDirectory");
try {
String fileName = remoteFile.getName();
File localFile = new File(localDirectory + File.separator + fileName);
File fileParent = localFile.getParentFile();
if (null != fileParent && !fileParent.exists()) {
fileParent.mkdirs();
}
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];
}
out.flush(); //刷新缓冲区输出流
} catch (Exception e) {
e.printStackTrace();
} finally {
out.close();
in.close();
}
}
jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/172.21.140.132
jcifs.util.transport.TransportException
java.io.IOException: transport closed in negotiate
at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:289)
at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:319)
at jcifs.util.transport.Transport.run(Transport.java:241)
at java.base/java.lang.Thread.run(Thread.java:834)
at jcifs.util.transport.Transport.run(Transport.java:258)
at java.base/java.lang.Thread.run(Thread.java:834)
at jcifs.smb.SmbTransport.connect(SmbTransport.java:309)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156)
at jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
at jcifs.smb.SmbFile.connect(SmbFile.java:954)
at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
at jcifs.smb.SmbFile.open0(SmbFile.java:972)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:73)
at jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:65)
at com.example.demo.controller.shareSmbFileUtil.smbGet(shareSmbFileUtil.java:40)
at com.example.demo.controller.shareSmbFileUtil.main(shareSmbFileUtil.java:103)
Exception in thread "main" java.lang.NullPointerException
at com.example.demo.controller.shareSmbFileUtil.smbGet(shareSmbFileUtil.java:52)
at com.example.demo.controller.shareSmbFileUtil.main(shareSmbFileUtil.java:103)
有权限的IP可以直接io流读写
正常下载文件