FTPを導入する手順は前回の記事を参照。
【Java】EclipseでFTPを使うためにJakarta Commonsを導入する手順
まどろっこしいのは苦手なのでいきなりサンプルコードです。
(こちらのサイト様を参考にさせてもらいました Jakarta Commons NETによるFTP処理(FTPClient) - Java入門)
package hello;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.ftp.*;
public class FtpClientHelper {
private static final int FTP_PORT = 21;
private static final String LOCALHOST = FFFTPでいう「ホスト名(アドレス)」の部分 ;
private static final String USER = ユーザ名 ;
private static final String PASSWORD = パスワード ;
public static void test() {
try {
//ファイルアップロード
FileInputStream fis = new FileInputStream("c:\testftp.txt");
FTPClass.sendFile("remoteFilename", fis);
//ファイルダウンロード
FileOutputStream fos = new FileOutputStream("downloadfile.txt");
FTPClass.retrieveFile("/data/downloadfile", fos);
} catch (Exception e) {
e.printStackTrace();
}
}
static class FTPClass {
//ファイルアップロード
public static void sendFile (String remoteFilename, InputStream is ) throws Exception {
FTPClient ftpclient = new FTPClient();
try {
//指定するホスト、ポートに接続します
ftpclient.connect(LOCALHOST, FTP_PORT);
// コネクト
if (!FTPReply.isPositiveCompletion(ftpclient.getReplyCode())) {
Exception ee = new Exception("Can't Connect to :" + LOCALHOST);
throw ee;
}
//ログイン
if (ftpclient.login(USER, PASSWORD) == false) {
Exception ee = new Exception("Invalid user/password");
throw ee;
}
//ファイル転送モード設定
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);
//ファイル転送
ftpclient.storeFile(remoteFilename, is);
} catch (IOException e) {
throw e;
} finally {
try {
ftpclient.disconnect(); //接続解除
} catch (IOException e) {
}
}
}
//ファイルダウンロード
public static void retrieveFile(String remoteFilename, OutputStream os) throws Exception {
FTPClient ftpclient = new FTPClient();
try {
//指定するホスト、ポートに接続します
ftpclient.connect(LOCALHOST, FTP_PORT);
// コネクト
if (!FTPReply.isPositiveCompletion(ftpclient.getReplyCode())) {
Exception ee = new Exception("Can't Connect to :" + LOCALHOST);
throw ee;
}
//ログイン
if (ftpclient.login(USER, PASSWORD) == false) {
Exception ee = new Exception("Invalid user/password");
throw ee;
}
//ファイル転送モード設定
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);
// ファイル受信
ftpclient.retrieveFile(remoteFilename, os);
} catch (IOException e) {
throw e;
} finally {
try {
ftpclient.disconnect(); //接続解除
} catch (IOException e) {
}
}
}
}
}
※パッケージ名は各自変更願います※「インポートされた org.apache.commons.net は見つかりません」などとエラーが表示された場合はこちらを参照
【Java】EclipseでFTPを使うためにJakarta Commonsを導入する手順
一応使い方の説明をば。
といってもかなり簡単で
private static final String LOCALHOST = FFFTPでいう「ホスト名(アドレス)」の部分 ;
private static final String USER = ユーザ名 ;
private static final String PASSWORD = パスワード ;
この部分に必要な3つの情報を入れておくだけです後はtest()関数のようにして使用出来ます。
プロジェクト内の他のファイルからインポートするときは先頭に
import hello.FtpClientHelper.FTPClass;と追加すれば使用出来ます
初心者な僕でもこんなに簡単にできるとは・・・Javaは便利ですね(`・ω・´)


