【Java】JSPでタグライブラリを使う(JSTL)
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
当記事では、java.nio.fileパッケージを使った具体的な操作の一例として、Java上での以下のファイル操作について解説します。
【Java】java.nio.fileパッケージ(NIO.2)でも解説した通り、java.nio.fileパッケージは一般にjava.io.Fileクラスよりも高機能であり、多くの人にとっては使い勝手が良いものになると思います。
java.nio.fileパッケージでのファイル操作の前提となるPathオブジェクトの詳しい生成方法については、以下を参照して下さい。
【Java】Pathオブジェクトを生成する方法(java.nio.fileパッケージ)
また、ファイル・ディレクトリの削除およびコピーについては、以下を参照して下さい。
【Java】java.nio.fileパッケージの使用例②(移動・コピー、削除)
また、ファイル名などのディレクトリに含まれるファイルの一覧の取得、ファイルの属性の取得といったファイル操作は以下の記事で解説します。
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
FileChannelを使ったファイルのコピーは、以下の記事で解説します。
【Java】FileChannelを使って高速にファイル入出力を行ってみた
当記事では、java.nio.fileパッケージでのファイル操作を行う際に必要なPathオブジェクトを、java.nio.file.Pathsクラスのgetメソッドで生成します。
メソッド名 | 修飾子と型 | 説明 |
---|---|---|
get(String first, String... more) | public static Path | ファイルやディレクトリの場所を表すPathオブジェクトを生成します。 1つのパス文字列、または分割されたパス文字列を引数として渡しまず。 |
記述例は以下の通りです。
Path path = Paths.get("ファイルまたはディレクトリのパス");
Pathオブジェクトについての詳細は、以下の記事を参照して下さい。
【Java】Pathオブジェクトを生成する方法(java.nio.fileパッケージ)
java.nio.fileパッケージでのファイル・ディレクトリの作成には、java.nio.file.FilesクラスのcreateFIleメソッド、createDirectoryメソッドを使います。
java.nio.file.FIlesクラスのうち、ファイル・ディレクトリの作成にかかわるメソッドは、主に以下が挙げられます。
可変長引数 FIleAttribute<?>... attrsは、アクセス権限などのファイル属性を表します。この詳細については、以下の記事で紹介しています。
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
メソッド名 | 修飾子と型 | 説明 |
---|---|---|
createFile(Path path, FIleAttribute<?>... attrs) | static Path | 新規の空のファイルを作成します。 |
createDirectory(Path path, FIleAttribute<?>... attrs) | static Path | 新規の空のディレクトリを作成します。 |
createDirectories(Path path, FIleAttribute<?>... attrs) | static Path | 親ディレクトリも含めて、新規の空のディレクトリを作成します。 |
Path path = Paths.get("作成したいファイルのパス");
Files.createFile(path);
Path path = Paths.get("作成したいディレクトリのパス");
Files.createDirectory(path);
Path path = Paths.get("作成したいディレクトリのパス");
Files.createDirectories(path);
public class createFileSample {
public static void main(String[] args) {
//Paths.getメソッドに作成したいファイルのパスとファイル名を渡します。
Path filePath = Paths.get(".\\NIO\\sample1.txt");
try {
//Files.createFileメソッドにPathオブジェクトを渡して、ファイルを作成します。
Files.createFile(filePath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Paths.getメソッドで指定したパスに、「sample1.txt」という空のテキストファイルが生成されます。
なお、上記のコードを続けて実行すると、java.nio.file.FileAlreadyExistsExceptionという例外が返ります。これは、すでに同じパスにファイルが存在することを表す例外です。
public class createDirectorySample {
public static void main(String[] args) {
//Paths.getメソッドに作成したいディレクトリのパスを渡します。
Path dir1 = Paths.get(".\\NIO\\aa");
//親ディレクトリも含めて作成したいディレクトリのパスを渡します。
Path dir2 = Paths.get(".\\NIO\\bb\\cc");
try {
//ディレクトリを作成します。
Files.createDirectory(dir1);
//親ディレクトリも含めてディレクトリを作成します。
Files.createDirectories(dir2);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下の通りにディレクトリが生成されます。
createDirectoryメソッドで空のディレクトリ、createDirectoriesメソッドで親ディレクトリも含めてディレクトリが作成されることが確認できます。
ファイルやディレクトリを操作する前などに、その存在をチェックしたい場合があります。この場合は、Filesクラスのexistsメソッド、またはnotExistsメソッドを使います。
メソッド名 | 修飾子と型 | 説明 |
---|---|---|
exists(Path path, LinkOption... options) | static boolean | パスに渡したファイルが存在する場合はtrue、存在しない場合はfalseを返します。 |
notExists(Path path, LinkOption... options) | static boolean | パスに渡したファイルが存在しない場合はtrue、存在する場合はfalseを返します。 |
存在チェックを行いたいファイルまたはディレクトリのパスをexistメソッドまたはnotExistメソッドに渡します。
Path path = Paths.get("存在チェックを行いたいファイル、またはディレクトリのパス");
Files.exists(path);
Files.notExists(path);
public class existCheckSample {
public static void main(String[] args) {
//存在するファイルのPathオブジェクトを作成します。
Path existPath = Paths.get(".\\NIO\\sample1.txt");
//存在しないファイルのPathオブジェクトを作成します。;
Path notExistPath = Paths.get(".\\NIO\\notExist.txt");
//存在するディレクトリを表すPathオブジェクトを作成します。
Path dirPath = Paths.get(".\\NIO\\aa");
//存在するファイルに対して存在チェックを行います。
System.out.println(Files.exists(existPath));
//存在しないファイルに対して存在チェックを行います。
System.out.println(Files.exists(notExistPath));
//存在するファイルに対して、存在しないことをチェックします。
System.out.println(Files.notExists(existPath));
//存在するディレクトリに対して存在チェックを行います。
System.out.println(Files.exists(dirPath));
}
}
コンソールに以下のように出力されます。
true
false
false
true
当記事では、ファイル・ディレクトリの作成および存在チェックについて解説しました。
次のファイル・ディレクトリの削除およびコピーを紹介する記事を合わせて読むことをおすすめします。
【Java】java.nio.fileパッケージの使用例②(移動・コピー、削除)
関連記事:
【Java】java.nio.fileパッケージ(NIO.2)
【Java】Pathオブジェクトを生成する方法(java.nio.fileパッケージ)
【Java】java.nio.fileパッケージの使用例②(移動・コピー、削除)
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
【Java】java.io.Fileクラスの使い方(ファイル・ディレクトリ操作、パス、ファイル名、拡張子)
【Java】java.io.Fileクラスの使い方(ファイル一覧の取得、フィルタ)
【著者】
フォワードソフト株式会社のエンジニア。Java、Python、JavaScript、C#などの言語の他、クラウドやネットワーク技術を勉強しています。PythonやVBAを使った自動化で楽をする方法を考えるのが好きです。 最近はジェネレーティブAIの業務利用に関する検証を行っています。 資格を通じて知識を吸収することを心がけており、セキュリティスペシャリスト、データベーススペシャリスト、応用情報技術者、Oracle Certified Java Programmer Gold SE 11、Pythin3 エンジニア認定試験、HTML5プロフェッショナル認定試験レベル2、AWSプラクティショナーなどの情報資格を保有しています。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様