Java Apache Commons:使用CopyStreamEvent时获取CopyStreamException:IOException
我正在尝试使用ApacheCommons的FTPClient类将文件上载到FTP服务器。storeFile()可以正常工作,但我不想使用它,而是想创建一个侦听器,这样我就可以关注上传进度 当我运行代码时,它愉快地连接并调用uploadFile()——这反过来抛出CopyStreamException:IOException 我不擅长决定引发异常的原因,它可能是我的“侦听器”对象吗 我就是这样做的:Java Apache Commons:使用CopyStreamEvent时获取CopyStreamException:IOException,java,inputstream,ftp-client,apache-commons-net,Java,Inputstream,Ftp Client,Apache Commons Net,我正在尝试使用ApacheCommons的FTPClient类将文件上载到FTP服务器。storeFile()可以正常工作,但我不想使用它,而是想创建一个侦听器,这样我就可以关注上传进度 当我运行代码时,它愉快地连接并调用uploadFile()——这反过来抛出CopyStreamException:IOException 我不擅长决定引发异常的原因,它可能是我的“侦听器”对象吗 我就是这样做的: /** Upload a file to the server */ public boolean
/** Upload a file to the server */
public boolean uploadFile (String localFile, String serverFile, CopyStreamAdapter listener ) throws IOException, FTPConnectionClosedException
{
/*
FileInputStream in = new FileInputStream(localFile);
boolean result = storeFile(serverFile, in);
in.close();
return result;
*/
InputStream stO = new BufferedInputStream( this.retrieveFileStream(serverFile), this.getBufferSize());
OutputStream stD = new FileOutputStream(localFile);
org.apache.commons.net.io.Util.copyStream(stO, stD, this.getBufferSize(), org.apache.commons.net.io.CopyStreamEvent.UNKNOWN_STREAM_SIZE, listener );
this.completePendingCommand();
// if we get this far, it's rainbows all the way down!
return true ;
}
听众:
CopyStreamAdapter listener = new org.apache.commons.net.io.CopyStreamAdapter()
{
public void bytesTransferred (long totalBytesTransferred, int bytesTransferred, long streamSize)
{
// show progress
System.out.println( "Upload progress: " + bytesTransferred + " of " + totalBytesTransferred ) ;
}
} ;
f = new ftpClientWrapper() ; // my class instance.
f.uploadFile(filename, "/public/dropfolder/test/testfile.test" , listener ) ; // i've validated filename and uploadpath
编辑:这是堆栈跟踪:
Error on FTP upload: org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
at org.apache.commons.net.io.Util.copyStream(Util.java:129)
at org.apache.commons.net.io.Util.copyStream(Util.java:173)
at dk.capsize.ftpapp.ftpClientWrapper.uploadFile(JakartaFtpWrapper.java:105)
at FTPApp.main(FTPApp.java:63)
提前谢谢 你能发布IOException的完整堆栈跟踪吗?哎呀-我忘了:)你能发布IOException的完整堆栈跟踪吗?哎呀-我忘了:)