14bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair/* 24bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Copyright 2007 the original author or authors. 34bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 44bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 54bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * you may not use this file except in compliance with the License. 64bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * You may obtain a copy of the License at 74bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 84bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * http://www.apache.org/licenses/LICENSE-2.0 94bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 104bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Unless required by applicable law or agreed to in writing, software 114bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * distributed under the License is distributed on an "AS IS" BASIS, 124bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * See the License for the specific language governing permissions and 144bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * limitations under the License. 154bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 164bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairpackage org.mockftpserver.stub.example; 174bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 184bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport java.io.ByteArrayOutputStream; 194bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport java.io.IOException; 204bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport java.net.SocketException; 214bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 224bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport org.apache.commons.net.ftp.FTPClient; 234bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 244bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair/** 254bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Simple FTP client code example. 264bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 274bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @version $Revision$ - $Date$ 284bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 294bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @author Chris Mair 304bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 314bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairpublic class RemoteFile { 324bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 334bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair private String server; 344bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair private int port; 354bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 364bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair public String readFile(String filename) throws SocketException, IOException { 374bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 384bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair FTPClient ftpClient = new FTPClient(); 394bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair ftpClient.connect(server, port); 404bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 414bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 424bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair boolean success = ftpClient.retrieveFile(filename, outputStream); 434bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair ftpClient.disconnect(); 444bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 454bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair if (!success) { 464bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair throw new IOException("Retrieve file failed: " + filename); 474bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 484bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair return outputStream.toString(); 494bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 504bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 514bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair /** 524bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Set the hostname of the FTP server 534bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @param server - the hostname of the FTP server 544bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 554bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair public void setServer(String server) { 564bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair this.server = server; 574bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 584bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 594bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair /** 604bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Set the port number for the FTP server 614bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @param port - the port number 624bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 634bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair public void setPort(int port) { 644bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair this.port = port; 654bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 664bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 674bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair // Other methods ... 684bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair} 69