Apache Commons とは、Apacheソフトウェア財団が開発しているオープンソースのJavaライブラリである。
Apache Commonsは次に示すコンポーネントから構成されている。
| コンポーネント | 説明 |
|---|---|
| Apache Commons BeanUtil | JavaのリフレクションとイントロスペクションAPIを使いやすくしたラッパー |
| Apache Commons CSV | CSV(カンマ区切り値)ファイルの読み込みと書き出しを行うためのコンポーネント |
| Apache Commons Daemon | UnixデーモンのようなJavaコードのための代替呼び出しメカニズム |
| Apache Commons IO | I/Oユーティリティのコレクション |
| Apache Commons Lang | java.langを機能拡張したもの |
| Apache Commons Logging | ロギングAPI実装のラッパー |
| Apache Commons Net | ネットワークユーティリティとプロトコル実装のコレクション |
org.apache.commons.beanutils.BeanUtilsクラスのcopyPropertiesメソッドで、Beansから他のBeansへ全てのプロパティをコピーできる。
// nullをjava.sql.Timestampのプロパティへコピーするための設定
ConvertUtils.register(new SqlTimestampConverter(null), java.sql.Timestamp.class);
// プロパティのコピー
BeanUtils.copyProperties(dest, orig);
// SqlTimestampConverterの解除
ConvertUtils.deragister();
Apache Commons CSVのクラスを次の表に示す。
| クラス | 説明 |
|---|---|
| org.apache.commons.csv.CSVFormat | CSVフォーマットとパース入力を特性するクラス |
| フォーマット | 区切り文字 | 引用符 | レコード区切り文字 | 空行を無視する |
|---|---|---|---|---|
| DEFAULT | , | " | \r\n | true |
| EXCEL | , | " | \r\n | false |
Apache Commons Daemonとは、Javaに基づいたデーモンを作成するためのライブラリである。
Apache Commons IOはI/Oユーティリティのコレクションである。
Apache Commons IOには次のクラスがある。
| クラス |
|---|
| org.apache.commons.io.FileUtils |
| org.apache.commons.io.IOUtils |
| org.apache.commons.io.output.ByteArrayOutputStream |
| メソッド | 説明 |
|---|---|
| copyFile | ファイルをコピーする。 |
ファイルをコピーする。
static void copyFile(File srcFile, File destFile)
ByteArrayOutputStreamは、データがバイト配列に書き込まれる出力ストリームである。
新しいバイト配列出力ストリームを作成する。
ByteArrayOutputStream
ByteArrayOutputStream(int size)
Apache Commons Langはjava.langを機能拡張したものである。
| メソッド | 説明 |
|---|---|
| isEmpty | 文字列がnull又は空(長さ0)か否かを返す |
| isNotEmpty | 文字列がnullでなく、かつ空(長さ0)でないか否かを返す |
static boolean isEmpty(java.lang.String)
static boolean isNotEmpty(java.lang.String)
Apache Commons Netはネットワークユーティリティとプロトコル実装のコレクションである。
// FTPクライアント
FTPClient client = new FTPClient();
// 接続
client.connect(host, port);
int reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
// 異常な応答コード
}
// ログイン
if (client.login("user", "password") == false) {
// ログイン失敗
}
// ファイルタイプの設定
client.setFileType(FTP.BINARY_FILE_TYPE);
// ファイルのGET
FileOutputStream fos = new FileOutputStream("localfile");
client.retrieveFile("remotefile", fos);
The Apache Software Foundation (2021) Apache Commons