如果你的 JDK 不是 Sun/Oracle 的那就算了。
如果你用的是 Sun/Oracle 的 JDK,你可以尝试用 Eclipse 打开这个 FtpClient 类。
按 Ctrl + Shift + T (Navigation 菜单上也有),然后输入 FtpClient,它会自动搜索猜测你的类名,打开后在 Outline (大纲) 视图中就有方法和字段名列表。
我也遇到过 我连接之后一段时间不上传文件 去调用 ftpclientisConnected(); 总是返回true
这个时候去上传文件就报 socket time out 连接超时 , 重连 之后就没有问题;
我怀疑是这个方法判断有误, 所以我修改了下 判断 isConnected() == true 并且 切换目录 changeWorkingDirectory 也要为true 再上传文件 否则就重连
changeWorkingDirectory 会抛出异常 自己封装下 try cach 一下 异常返回false 这是我的解决方案
flag = ftpClientretrieveFile(remoteFileName, os); os为远程文件的outputStream |remoteFileName为A服务器上文件名
flag = ftpClientstoreFile(remoteFileName, is);is为远程文件的inputSteam |remoteFileName为C服务器上文件名
由此可见这个地方还是相当纠结的,必须要用B服务器做个中转,利用B服务器上文件的OutputStream 和InputStream 所以如果文件不大的话当文件经B上传到C服务器后立即把B红的临时文件删掉就好了
当然你也可以试试
storeFileStream(String remote);来获得C上文件的OutputStream 在利用 ftpClientretrieveFile(remoteFileName, os);来上传,但是这种方法我没试过,你可以尝试一下,如果成功了请告诉我结果,谢谢
以上就是关于java FtpClient 详细说明全部的内容,包括:java FtpClient 详细说明、ftpClient.isConnected()这里返回true ftpClient.storeFile(localRootFile, input);这里返回false、请教一个在java中使用FTPClient的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)