FtpClient: Java で FTP を使う

Java で、FTP によるファイルアクセスするのに、FtpClient クラスを使用する方法を説明します。

  1. まず、openServer()メソッドで、サーバへの接続を確立します。
  2. login()メソッドで、アカウントにログインします。
  3. サーバーで、cd()メソッドを用いて、目的のファイルのディレクトリに移動します。
  4. ファイルをダウンロードします。
    1. RETR ファイル名 コマンドで、ファイルの取得を開始します。
    2. データを読み出し、ファイルに書き込みます。
    3. ストリームを閉じます。
  5. closeServer()メソッドを用いて、サーバーへのアクセスを切断します。

以下のコードでご覧ください。

import java.util.*;
import java.io.*;
import java.net.*;
import sun.net.ftp.*;
import sun.net.*;

public class BatchFtp extends FtpClient
{
    String hostName="****.****.***";
    String userName="****";
    String password="******";

    public void downloadFile(String fileName, String saveAs)
    {
	try
	    {
	        openServer(hostName,21);

		login(userName,password);

		if(!serverIsOpen())
		    return;

		binary();

		FileOutputStream fos=new FileOutputStream(saveAs);
		Socket socket=openDataConnection("RETR "+fileName);
		InputStream stream=socket.getInputStream();

		int bufferSize=1048576;
		byte buf[]=new byte[bufferSize];			
		int nBytes=0;
		while((nBytes=stream.read(buf,0,bufferSize))!=-1)
		    {
			fos.write(buf,0,nBytes);
		    }		

		stream.close();
		fos.close();	
		closeServer();	
	    }
	catch(Exception e){e.printStackTrace();}
    }
}
inserted by FC2 system