0

reading ftp server file using spring boot . is there any way to get the ftp file content that paste to logger.

what method used to read the file from the ftp server.

    package ftpRead1;
                
                
                import java.io.BufferedOutputStream;
                import java.io.File;
                import java.io.FileOutputStream;
                import java.io.IOException;
                import java.io.InputStream;
                import java.io.OutputStream;
                import java.text.DateFormat;
                import java.text.SimpleDateFormat;
                
                import org.apache.commons.net.ftp.FTP;
                import org.apache.commons.net.ftp.FTPClient;
                import org.apache.commons.net.ftp.FTPFile;
                import org.apache.commons.net.ftp.FTPReply;
                
                class tset{
                    
                public static void main(String args[])throws IOException {
                    
                          String server = "ftp.dlptest.com";
                            int port = 21;
                            String user = "dlpuser";
                            String pass = "rNrKYTX9g7z3RgJRmxWuGHbeu";
                     
                            
                            
                            FTPClient ftpClient = new FTPClient();
                            
                            try {
                     
                                ftpClient.connect(server, port);
                                showServerReply(ftpClient);
                     
                                int replyCode = ftpClient.getReplyCode();
                                if (!FTPReply.isPositiveCompletion(replyCode)) {
                                    System.out.println("Connect failed");
                                    return;
                                }
                     
                                boolean success = ftpClient.login(user, pass);
                                System.out.println("this is the server reply");
                                showServerReply(ftpClient);
                     
                                if (!success) {
                                    System.out.println("Could not login to the server");
                                    return;
                                }
                            
                                  FTPFile[] files = ftpClient.listFiles();
                                  System.out.println("Files on Ftp Server : "); for (FTPFile file : files) { if
                                  (file.isFile()) { System.out.println("File name : " + file.getName()); } }
                                 
                
                                // Lists files and directories
                                FTPFile[] files1 = ftpClient.listFiles();
                                System.out.println(files1);
                                printFileDetails(files1);
                     
                                // uses simpler methods
                                String[] package ftpRead1;
                
                
                import java.io.BufferedOutputStream;
                import java.io.File;
                import java.io.FileOutputStream;
                import java.io.IOException;
                import java.io.InputStream;
                import java.io.OutputStream;
                import java.text.DateFormat;
                import java.text.SimpleDateFormat;
                
                import org.apache.commons.net.ftp.FTP;
                import org.apache.commons.net.ftp.FTPClient;
                import org.apache.commons.net.ftp.FTPFile;
                import org.apache.commons.net.ftp.FTPReply;
                
                class tset{
                    
                public static void main(String args[])throws IOException {
                    
                          String server = "ftp.dlptest.com";
                            int port = 21;
                            String user = "dlpuser";
                            String pass = "rNrKYTX9g7z3RgJRmxWuGHbeu";
                     
                            
                            
                            FTPClient ftpClient = new FTPClient();
                            
                            try {
                     
                                ftpClient.connect(server, port);
                                showServerReply(ftpClient);
                     
                                int replyCode = ftpClient.getReplyCode();
                                if (!FTPReply.isPositiveCompletion(replyCode)) {
                                    System.out.println("Connect failed");
                                    return;
                                }
                     
                                boolean success = ftpClient.login(user, pass);
                                System.out.println("this is the server reply");
                                showServerReply(ftpClient);
                     
                                if (!success) {
                                    System.out.println("Could not login to the server");
                                    return;
                                }
                            
                                  FTPFile[] files = ftpClient.listFiles();
                                  System.out.println("Files on Ftp Server : "); for (FTPFile file : files) { if
                                  (file.isFile()) { System.out.println("File name : " + file.getName()); } }
                                 
                
                                // Lists files and directories
                                FTPFile[] files1 = ftpClient.listFiles();
                                System.out.println(files1);
                                printFileDetails(files1);
                     
                                // uses simpler methods
                                String[] files2 = ftpClient.listNames();
                                System.out.println(files2);
                
                                printNames(files2);
                                
                                ftpClient.enterLocalPassiveMode();
                                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                                
                                String remoteFile2 = "\\readFile.txt";
                                File downloadFile2 = new File("C:\\Users\\Shivaraju\\text.txt");
                                @SuppressWarnings("resource")
                                OutputStream outputStream2 = new BufferedOutputStream(new FileOutputStream(downloadFile2));
                                InputStream inputStream = ftpClient.retrieveFileStream(remoteFile2);
                                byte[] bytesArray = new byte[4096];
                                int bytesRead = -1;
                                while ((bytesRead = inputStream.read(bytesArray)) != -1) {
                                    outputStream2.write(bytesArray, 0, bytesRead);
                                }
                     
                                // APPROACH #1: using retrieveFile(String, OutputStream)
                                String remoteFile1 = "\\readFile.txt";
                                File downloadFile1 = new File("C:\\Users\\Shivaraju");
                                OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
                                boolean success1 = ftpClient.retrieveFile(remoteFile1, outputStream1);
                                outputStream1.close();
                     
                                if (success1) {
                                    System.out.println("File #1 has been downloaded successfully.");
                                }
                     
                     
                            } catch (IOException ex) {
                                System.out.println("\n \n Oops! Something wrong happened");
                                ex.printStackTrace();
                            } finally {
                                // logs out and disconnects from server
                                try {
                                    if (ftpClient.isConnected()) {
                                        ftpClient.logout();
                                        ftpClient.disconnect();
                                    }
                                } catch (IOException ex) {
                                    ex.printStackTrace();
                                }
                            }
                        }
                
                    
                     private static void printFileDetails(FTPFile[] files) {
                            DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                            for (FTPFile file : files) {
                                String details = file.getName();
                                if (file.isDirectory()) {
                                    details = "[" + details + "]";
                                }
                                details += "\t\t" + file.getSize();
                                details += "\t\t" + dateFormater.format(file.getTimestamp().getTime());
                     
                                System.out.println(details);
                            }
                        }
                     
                    
                    private static void printNames(String files[]) {
                        if (files != null && files.length > 0) {
                            for (String aFile: files) {
                                
                                System.out.println(aFile);
                            }
                        }
                         
                    }
                 
                    private static void showServerReply(FTPClient ftpClient) {
                        String[] replies = ftpClient.getReplyStrings();
                        if (replies != null && replies.length > 0) {
                            for (String aReply : replies) {
                                
                                System.out.println("SERVER: " + aReply);
                            }
                        }
                    }
                    
                }
                 = ftpClient.listNames();
                                System.out.println(files2);
                
                                printNames(files2);
                                
                                ftpClient.enterLocalPassiveMode();
                                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                                
                                String remoteFile2 = "\\readFile.txt";
                                File downloadFile2 = new File("C:\\Users\\Shivaraju\\text.txt");
                                @SuppressWarnings("resource")
                                OutputStream outputStream2 = new BufferedOutputStream(new FileOutputStream(downloadFile2));
                                InputStream inputStream = ftpClient.retrieveFileStream(remoteFile2);
                                byte[] bytesArray = new byte[4096];
                                int bytesRead = -1;
                                while ((bytesRead = inputStream.read(bytesArray)) != -1) {
                                    outputStream2.write(bytesArray, 0, bytesRead);
                                }
                     
                                // APPROACH #1: using retrieveFile(String, OutputStream)
                                String remoteFile1 = "\\readFile.txt";
                                File downloadFile1 = new File("C:\\Users\\Shivaraju");
                                OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
                                boolean success1 = ftpClient.retrieveFile(remoteFile1, outputStream1);
                                outputStream1.close();
                     
                                if (success1) {
                                    System.out.println("File #1 has been downloaded successfully.");
                                }
                     
                     
                            } catch (IOException ex) {
                                System.out.println("\n \n Oops! Something wrong happened");
                                ex.printStackTrace();
                            } finally {
                                // logs out and disconnects from server
                                try {
                                    if (ftpClient.isConnected()) {
                                        ftpClient.logout();
                                        ftpClient.disconnect();
                                    }
                                } catch (IOException ex) {
                                    ex.printStackTrace();
                                }
                            }
                        }
                
                    
                     private static void printFileDetails(FTPFile[] files) {
                            DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                            for (FTPFile file : files) {
                                String details = file.getName();
                                if (file.isDirectory()) {
                                    details = "[" + details + "]";
                                }
                                details += "\t\t" + file.getSize();
                                details += "\t\t" + dateFormater.format(file.getTimestamp().getTime());
                     
                                System.out.println(details);
                            }
                        }
                     
                    
                    private static void printNames(String files[]) {
                        if (files != null && files.length > 0) {
                            for (String aFile: files) {
                                
                                System.out.println(aFile);
                            }
                        }
                         
                    }
                 
                    private static void showServerReply(FTPClient ftpClient) {
                        String[] replies = ftpClient.getReplyStrings();
                        if (replies != null && replies.length > 0) {
                            for (String aReply : replies) {
                   



        
                                System.out.println("SERVER: " + aReply);
                            }
                        }
                    }
                    
                }

reading ftp server file using spring boot . is there any way to get the ftp file content that paste to logger.

what method used to read the file from the ftp server.

0 Answers0