Comment télécharger un fichier à partir de FTP en utilisant Java?


Avec ce code, iI obtient toujours un fichier vide.
Ce que j'ai à faire avec elle?
login est toujours true. (ofc, ici n'est pas vrai mot de passe)

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

import java.io.*;

public class Logs {
    public static void main(String[] args) {
        FTPClient client = new FTPClient();

        try {
            client.connect("myac.cs-server.pro", 121);
            boolean login = client.login("a3ro", "passWordIsSecret");
            System.out.println(login);
            String remoteFile1 = "myac_20150304.log";
            File downloadFile1 = new File("C:\\Users\\Aero\\Desktop\\test\\myac.log");
            OutputStream outputStream1 =
                new BufferedOutputStream(new FileOutputStream(downloadFile1));
            boolean success = client.retrieveFile(remoteFile1, outputStream1);
            System.out.println(success);
            outputStream1.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                client.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
Author: Martin Prikryl, 2015-03-05

2 answers

Utilisez quelque chose comme ceci:

InputStream inputStream = client.retrieveFileStream(remoteFileNameHere);

Pour récupérer le flux d'entrée de fichier distant.

Ensuite, vous pouvez utiliser pour copier le flux dans le fichier souhaité:

 FileOutputStream out = new FileOutputStream(targetFile);
 org.apache.commons.io.IOUtils.copy(in, out);
 1
Author: StanislavL, 2017-04-25 11:32:14

Utiliser FileOutputStream:

String filename = "test.txt";
FileOutputStream fos = new FileOutputStream(filename);
client.retrieveFile("/" + filename, fos);
 1
Author: Android Team, 2017-04-25 11:32:34