Bonjour,

Je souhaite récupérer le contenu d'un fichier, dans un répertoire FTP, en java :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
private static String getStringContentFromFile(String fileToGet)
fileToGet est le nom du fichier, exemple "toto.txt"

Voila mon code, qui semble être correct :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private static String getStringContentFromFile(String fileToGet) throws SocketException, IOException {
    String fileContent = null;
 
    // Connection
    FTPClient ftpClient = new FTPClient();
    ftpClient.connect(server);
    ftpClient.login(user, pass);
 
    // On change de répertoire
    ftpClient.enterLocalPassiveMode();
    ftpClient.changeWorkingDirectory(directory);
 
    fileContent = convertStreamToString(ftpClient.retrieveFileStream(fileToget));
 
    // Fermeture connection
    ftpClient.logout(); ftpClient.disconnect();
 
    return fileContent;
}    
 
private static String convertStreamToString(java.io.InputStream is) {
    java.util.Scanner scanner = new java.util.Scanner(is);
    java.util.Scanner s = scanner.useDelimiter("\\A");
    String stringToReturn = s.hasNext() ? s.next() : "";
    scanner.close();
    return stringToReturn;
}


Pouvez-vous vérifier si je n'ai rien oublié ?

mon code doit retourner "null" si le fichier n'existe pas.
A quoi sert ftpClient.enterLocalPassiveMode(); ?

Merci.