Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下载文件时发生Java FTP commons net错误_Java_Ftp - Fatal编程技术网

下载文件时发生Java FTP commons net错误

下载文件时发生Java FTP commons net错误,java,ftp,Java,Ftp,我正在使用apache commons.net访问ftp站点,该站点的目录位于unix中: import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; 我正在循环浏览一个列表,其中包含我想在特定ftp站点上下载的文件名的名称 String ftpPath = "/home/user1/input/";

我正在使用apache commons.net访问ftp站点,该站点的目录位于unix中:

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
我正在循环浏览一个列表,其中包含我想在特定ftp站点上下载的文件名的名称

String ftpPath = "/home/user1/input/";
FileOutputStream fos = null;
File file;

try {
    for (int i = 0; i < fileList.size(); i++) {
        file = new File(ftpPath+fileList.get(i).toString());
        OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(file));
        boolean download = ftpClient.retrieveFile("c:/test/downloadedFile.csv", outputStream1);
        outputStream1.close();
        if (download) {
           System.out.println("File downloaded successfully !");
        } else {
           System.out.println("Error in downloading file ! " + downloadFile);
        }
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
String ftpPath=“/home/user1/input/”;
FileOutputStream=null;
文件;
试一试{
对于(int i=0;i
但是,一旦我尝试开始下载文件,我就会出现这个错误,尽管检查ftp站点时,该文件位于/home/user1/input/TejasSDH_PM_AU_09_07_2014_09_00.csv-rw-r--r--:

java.io.FileNotFoundException:\home\user1\input\TejasSDH\u PM\u AU\u 09\u 07\u 2014\u 09\u 00.csv(系统找不到指定的路径)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:221)
位于java.io.FileOutputStream。(FileOutputStream.java:110)
在com.syntronic.client.FTPDataExtract$1.下载TejasFiles(FTPDataExtract.java:255)
位于com.syntronic.client.FTPDataExtract$1.run(FTPDataExtract.java:133)

我认为作为我连接的ftp站点,路径dir位于unix home/user1/input中,java正在将所有“/”转换为“\”。有人知道eclipse中的错误是什么意思,或者我的代码有什么问题吗?谢谢你

你好像在改变主意

您正在打开一个文件outputstream到
\home\user1\input\TejasSDH\u PM\u AU\u 09\u 07\u 2014\u 09\u 00.csv
,而您似乎在windows上,因此无法工作

您有ftp路径应该到达的本地路径,反之亦然

请仔细阅读错误,我敢打赌FTPDataExtract.java中的255行是:

fos = new FileOutputStream(downloadFile);
这应该提醒您这实际上不是ftp问题。

for(int i=0;ifor (int i = 0; i < fileList.size(); i++) {
    OutputStream output;
    output = new FileOutputStream("C:/test/" + fileList.get(i).toString());
    ftpClient.retrieveFile(ftpPath + fileList.get(i).toString(), output); 
    output.close();
}
输出流输出; output=newfileoutputstream(“C:/test/”+fileList.get(i).toString()); ftpClient.retrieveFile(ftpPath+fileList.get(i).toString(),输出); output.close(); }
我错误地切换了远程和本地路径,正确切换将使程序平稳运行。

我明白你的意思。我更新了代码(见上文),因为我目前正在寻找解决方案,但同样的错误仍然显示,即使将输出流更改为file.nablex,谢谢,我终于明白了您的意思。我真蠢。我从本地路径切换了遥控器。需要马上去看医生,连续做8小时的编码让我的思维迟钝。再次感谢你。
for (int i = 0; i < fileList.size(); i++) {
    OutputStream output;
    output = new FileOutputStream("C:/test/" + fileList.get(i).toString());
    ftpClient.retrieveFile(ftpPath + fileList.get(i).toString(), output); 
    output.close();
}