Javaのラッパークラスでプリミティブ型を変換する方法とディレクトリ操作の基本
本記事では、Javaのラッパークラスの基本的な使い方と、java.nioパッケージのFilesクラスを利用したディレクトリの作成・一覧表示・フィルタリングの方法について、サンプルコード付きで解説します。
ラッパークラスとは
Javaには、java.langパッケージに「ラッパークラス」と呼ばれるクラス群が用意されています。これらのクラスのオブジェクトは、intやcharなどのプリミティブ型(基本データ型)の値を内部に包み込む(ラップする)役割を果たします。
ラッパークラスを利用することで、ArrayListやHashMapといったコレクションにプリミティブ型の値を格納できるようになります。また、ネットワーク越しにデータをやり取りする際にも、オブジェクトとして扱えるラッパークラスが役立ちます。
主なラッパークラスと対応するプリミティブ型は以下の通りです。
- byte → Byte
- short → Short
- int → Integer
- long → Long
- float → Float
- double → Double
- char → Character
- boolean → Boolean
ラッパークラスの使用例
次の例では、ユーザーから入力されたint値をIntegerオブジェクトに変換し、文字列化や他オブジェクトとの比較を行っています。
import java.util.Scanner;
public class WrapperExample {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("整数値を入力してください: ");
int i = sc.nextInt();
// int値をIntegerオブジェクトに変換
Integer obj = Integer.valueOf(i);
// Integerオブジェクトを文字列に変換
String str = obj.toString();
System.out.println(str);
// 他のIntegerオブジェクトとの比較
int result = obj.compareTo(Integer.valueOf(124));
if(result == 0) {
System.out.println("両者は等しい");
} else {
System.out.println("両者は等しくない");
}
}
}
実行結果
整数値を入力してください: 1211 1211 両者は等しくない
なお、new Integer(int)コンストラクタはJava 9以降で非推奨となっているため、代わりにInteger.valueOf()メソッドを使用することが推奨されます。また、Java 5以降では「オートボクシング」機能により、Integer obj = i;のように明示的な変換なしで代入することも可能です。
Javaでディレクトリを作成する
続いて、java.nioパッケージのFilesクラスを使ったディレクトリ操作を見ていきましょう。createDirectory()メソッドは、引数として渡されたパスの位置に新しいディレクトリを作成します。
例:新しいディレクトリの作成
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String args[]) throws IOException {
// Pathオブジェクトの生成
String pathStr = "D:\\sample_directory";
Path path = Paths.get(pathStr);
// ディレクトリの作成
Files.createDirectory(path);
System.out.println("ディレクトリを作成しました");
}
}
実行結果
ディレクトリを作成しました
実際にファイルシステムを確認すると、指定した場所にディレクトリが作成されていることがわかります。

ディレクトリ内の内容を一覧表示する
FilesクラスのnewDirectoryStream()メソッドは、指定したパスのディレクトリを開き、その内容へアクセスできるDirectoryStreamを返します。このストリームを拡張for文で処理することで、ディレクトリ内のファイルやサブディレクトリを順番に取得できます。
例:ディレクトリ内容の表示
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FilesExample {
public static void main(String args[]) throws IOException {
// Pathオブジェクトの生成
String pathStr = "D:\\ExampleDirectory";
Path path = Paths.get(pathStr);
System.out.println("指定されたディレクトリの内容");
DirectoryStream<Path> stream = Files.newDirectoryStream(path);
for (Path file : stream) {
System.out.println(file.getFileName());
}
}
}
実行結果
指定されたディレクトリの内容 demo1.pdf demo2.pdf sample directory1 sample directory2 sample directory3 sample directory4 sample_jpeg1.jpg sample_jpeg2.jpg test test1.docx test2.docx
フィルタを使ってディレクトリだけを抽出する
DirectoryStream.Filterインターフェースを実装すると、条件に合致するエントリだけを取得できます。次の例では、指定したパスの中からディレクトリのみをフィルタリングして表示しています。
例:ディレクトリのみを表示するフィルタ
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String args[]) throws IOException {
// Pathオブジェクトの生成
String pathStr = "D:\\ExampleDirectory";
Path path = Paths.get(pathStr);
System.out.println("指定されたディレクトリ内のサブディレクトリ");
DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>(){
public boolean accept(Path file) throws IOException {
return Files.isDirectory(file);
}
};
DirectoryStream<Path> list = Files.newDirectoryStream(path, filter);
for (Path file : list) {
System.out.println(file.getFileName());
}
}
}
実行結果
指定されたディレクトリ内のサブディレクトリ hidden directory1 hidden directory2 sample directory1
-
Javaのラッパークラスでプリミティブ型を変換する方法とディレクトリ操作の基本
本記事では、Javaのラッパークラスの基本的な使い方と、java.nioパッケージのFilesクラスを利用したディレクトリの作成・一覧表示・フィルタリングの方法について、サンプルコード付きで解説します。 ラッパークラスとは Javaには、java.langパッケージに「ラッパークラス」と呼ばれるクラス群が用意されています。これらのクラスのオブジェクトは、intやcharなどのプリミティブ型(基本データ型)の値を内部に包み込む(ラップする)役割を果たします。 ラッパークラスを利用することで、ArrayListやHashMapといったコレクションにプリミティブ型の値を格納できるようになります。また
-
【Java入門】ネガティブ画像をポジティブ画像に変換する方法|BufferedImageでピクセル単位のRGB反転を実装
ネガティブ(反転)画像を元のポジティブ画像に戻すには、画像内のすべてのピクセルに対して、赤(R)・緑(G)・青(B)の各値を「255 − 値」で反転させます。透明度を表すアルファ(A)成分はそのまま維持します。この操作は可逆的なため、同じロジックでポジ→ネガ→ポジの往復変換にも対応できます。 ネガ画像からポジ画像への変換手順 画像の読み込み: ImageIO.read() メソッドで対象の画像ファイルを読み込みます。 サイズの取得: getHeight() と getWidth() で画像の高さと幅を取得します。 ピクセル走査: 二重の for ループで画像内の全ピクセルを順番に処理します。