1b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/* 2b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Copyright 2007 the original author or authors. 3b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 4b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * you may not use this file except in compliance with the License. 6b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * You may obtain a copy of the License at 7b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 8b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * http://www.apache.org/licenses/LICENSE-2.0 9b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 10b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Unless required by applicable law or agreed to in writing, software 11b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * See the License for the specific language governing permissions and 14b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * limitations under the License. 15b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 16b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpackage org.mockftpserver.stub.example; 17b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 18b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.apache.commons.net.ftp.FTPClient; 19b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 20b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport java.io.ByteArrayOutputStream; 21b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport java.io.IOException; 22b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 23b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/** 24b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Simple FTP client code example. 25b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 26b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @author Chris Mair 27b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @version $Revision$ - $Date$ 28b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 29b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpublic class RemoteFile { 30b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 31b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public static final String USERNAME = "user"; 32b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public static final String PASSWORD = "password"; 33b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 34b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private String server; 35b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private int port; 36b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 37b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public String readFile(String filename) throws IOException { 38b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 39b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair FTPClient ftpClient = new FTPClient(); 40b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair ftpClient.connect(server, port); 41b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair ftpClient.login(USERNAME, PASSWORD); 42b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 43b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 44b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair boolean success = ftpClient.retrieveFile(filename, outputStream); 45b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair ftpClient.disconnect(); 46b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 47b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair if (!success) { 48b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair throw new IOException("Retrieve file failed: " + filename); 49b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 50b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair return outputStream.toString(); 51b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 52b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 53b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 54b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Set the hostname of the FTP server 55b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 56b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @param server - the hostname of the FTP server 57b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 58b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void setServer(String server) { 59b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair this.server = server; 60b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 61b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 62b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 63b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Set the port number for the FTP server 64b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 65b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @param port - the port number 66b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 67b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void setPort(int port) { 68b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair this.port = port; 69b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 70b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 71b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair // Other methods ... 72b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair} 73