FTP-org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
来源:互联网 发布:带着淘宝穿古代微盘 编辑:程序博客网 时间:2024/05/21 07:10
问题(下载ftp文件):
写一个ftp下载程序,出现很怪异的错误,写得过程中会出现空指针,
有时候又出现java.net.SocketTimeoutException: Read timed out,
还会出现org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
- public void run() {
- ftpClient.enterLocalPassiveMode();
- OutputStream outputStream = null;
- try {
- ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
- ftpClient.changeWorkingDirectory(path);// 转移到FTP服务器目录
- FTPFile[] fs = ftpClient.listFiles(); // 得到目录的相应文件列表
- for (int i = 0; i < fs.length; i++) {
- FTPFile ff = fs[i];
- if (ff.getName().equals(fileName)) {
- System.out.println(ff.getName());
- String filename = fileName;
- // 这个就就是弹出下载对话框的关键代码
- // response.setContentType("application/octet-stream");
- response.setHeader("Content-disposition",
- "attachment;filename="
- + URLEncoder.encode(filename, "utf-8"));
- // 将文件保存到输出流outputStream中
- InputStream in = ftpClient.retrieveFileStream(new String(ff
- .getName().getBytes("GBK"), "ISO-8859-1"));
- outputStream = response.getOutputStream();
- int len = 0;
- long size = 0;
- long t = 16364;
- byte[] bt = new byte[1024];
- while ((len = in.read(bt)) > 0) {
- outputStream.write(bt, 0, len); // outputStream.flush();
- size = size + len;
- System.out.println(this.fileName + "已xiazai :" + size);
- }
- /*
- * // response.s File file = new File("d:/123456.com"); //
- * response.reset();response //response. outputStream =
- * response.getOutputStream(); // new
- * FileOutputStream(file); boolean boo = false; if
- * (outputStream != null) { boo = ftpClient
- * .retrieveFile(ff.getName(), outputStream); }
- */
- // System.out.println(boo);
- // in.close();
- // os.close();
- outputStream.flush();
- }
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- try {
- outputStream.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- FTPUtil.disconnect(ftpClient);
- }
org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
at org.apache.commons.net.io.Util.copyStream(Util.java:127)
at org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1295)
at com.yniso.filesystem.DownloadFTPFile.run(DownloadFTPFile.java:92)
rrrrr.kk
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStream.java:114)
at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream.java:535)
at java.lang.Thread.run(Unknown Source)
Demo.rar
Demo.rar已xiazai :1024
Demo.rar已xiazai :2048
Demo.rar已xiazai :3072
Demo.rar已xiazai :4096
Demo.rar已xiazai :5120
Demo.rar已xiazai :6144
Demo.rar已xiazai :7168
Demo.rar已xiazai :8192
Demo.rar已xiazai :9216
Demo.rar已xiazai :10240
Demo.rar已xiazai :11264
Demo.rar已xiazai :12288
Demo.rar已xiazai :13312
Demo.rar已xiazai :14336
Demo.rar已xiazai :15360
Demo.rar已xiazai :16384
Exception in thread "Thread-22" java.lang.NullPointerException
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:740)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:764)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:124)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273)
at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:104)
at com.yniso.filesystem.DownloadFTPFile.run(DownloadFTPFile.java:120)
分析原因:经反复测试这异常好像都是因为网络的问题,因为网络不稳定下载直接被迫中断了
阅读全文
0 0
- org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
- org.apache.commons.net.io.CopyStreamException: IOException caught while copying
- org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
- FTP-org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
- java ftp org.apache.commons.net.io.CopyStreamException
- org.apache.commons.net.ftp
- org.apache.commons.net.ftp使用心得
- org.apache.commons.net.ftp.FTPClient使用
- org.apache.commons.net.ftp.FTPClient 例子
- org.apache.commons.net.ftp.FTPClient
- org.apache.commons.net.ftp Class FTPClient
- org.apache.commons.net.ftp.FTPClient
- org.apache.commons.io
- FTP客户端程序(org.apache.commons.net.ftp)
- org.apache.commons.net.ftp.FTPClient使用总结
- org.apache.commons.net.ftp.FTPClient创建中文路径
- org.apache.commons.net.ftp.FTPClient文件上传下载,中文乱码
- org.apache.commons.net.ftp.FTPConnectionClosedException异常产生原因
- :first-child 的坑(first-child的伪类选择器不起作用)
- 新一代图形技术WebGL
- 1143: 最大值—多种进制
- 遥感影像挑选-选片技巧
- 【JavaSE笔记】Java常用类及其方法(五)_Character
- FTP-org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
- 解决package ~ is not configured yet
- java项目 Nginx+Lua+Redis ip次数限制 非集群
- C++中的静态库与动态库
- angularjs 点击事件获取 点击对象
- Java学习之注解Annotation实现原理
- 解决bootstap栅格系统因一行内容太多,导致其它栅格内容堆在一边
- python解析json字符串
- springcloud