【Java】JSPでタグライブラリを使う(JSTL)
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
当記事では、Java7から新たに追加された、ファイル、ファイル属性、およびファイル・システムにアクセスするといったファイル操作をJava上で行うためのパッケージである、java.nio.fileパッケージの概要について、Java Gold SE 11の資格を持つ著者が解説します。
サンプルコードなどの具体的な使用例は当記事では掲載しておりません。
java.nio.fileパッケージの具体的な使用例については、以下の記事を参照して下さい。
【Java】Pathオブジェクトを生成する方法(java.nio.fileパッケージ)
【Java】java.nio.fileパッケージの使用例①(ファイルの作成、存在チェック)
【Java】java.nio.fileパッケージの使用例②(移動・コピー、削除)
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
【Java】FileChannelを使って高速にファイル入出力を行ってみた
また、Java6以前からのファイルを扱うパッケージであるjava.io.Fileクラスについては、こちらの記事を参照して下さい。
【Java】java.io.Fileクラスの使い方(ファイル・ディレクトリ操作、パス、ファイル名、拡張子)
【Java】java.io.Fileクラスの使い方(ファイル一覧の取得、フィルタ)
NIO.2とは、New I/O(Input / Output)の略で、新しい入出力機能であることを表します。nioパッケージのうち、特にファイル操作を行うnio.fileパッケージを特にNIO.2と呼び、NIO.2でのファイル操作は、FileクラスではなくPathインターフェースで扱うことが推奨されています。
java.nio.filesパッケージの特徴として、主にファイルやディレクトリの場所を示すPathインターフェースと、ファイル操作を行うためのstaticメソッドを集めたFilesクラスを使い分けてファイルを扱うことが挙げられます。
java上でファイル操作を行う方法として、java.io.Fileクラスを使う方法がありますが、失敗時に例外がスローされない、Windows / UNIXといったプラットフォームの違いによるファイルシステムの違いによって動作が一貫しないなどの欠点がありました。
java.nio.fileパッケージは、上記のjava.io.Fileクラスの欠点を補い、様々な機能を備えています。新しくJavaのコードを書くときには、基本的にjava.nio.fileパッケージを使ってファイル操作を記述することが推奨されていますが、古いシステムを使っているところではjava.io.Fileクラスを使ったコードやフレームワークもまだまだ多いため、両方とも使えるようにするのが望ましいです。
また、java.nio.fileパッケージとjava.io.Fileクラスで同様の動作をするコードを記述した場合、java.nio.fileパッケージを使用したほうが短く簡潔に記述できる場合が多いです。
java.io.Fileクラスの使い方については、こちらの記事を参照して下さい。
【Java】java.io.Fileクラスの使い方(ファイル・ディレクトリ操作、パス、ファイル名、拡張子)
【Java】java.io.Fileクラスの使い方(ファイル一覧の取得、フィルタ)
基本的なファイル操作と、それに対応するjava.io.Fileクラス、java.nio.fileパッケージの機能を、以下の表にまとめます。
操作 | java.io.Fileクラス | java.nio.fileパッケージ |
---|---|---|
ファイル操作のためのオブジェクトの作成 | java.io.File | java.nio.file.Path |
ファイルの新規作成 | java.io.File.createNewFile | java.nio.file.Files.createFile |
ディレクトリの新規作成 | java.io.File.mkdir | java.nio.file.Files.createDirectory |
ファイル・ディレクトリの存在確認 | java.io.File.exists | java.nio.file.Files.exists, java.nio.file.Files.notExists |
ファイル・ディレクトリの移動 | java.io.File.renameTo | java.nio.file.Files.move |
ファイル・ディレクトリの削除 | java.io.File.Delete | java.nio.file.Files.delete |
絶対パスの取得 | java.io.File.getAbsolutePath | java.nio.file.Path.toAbsolutePath |
ファイル名の取得 | java.io.File.getName | java.nio.file.Path.getName |
親ディレクトリ名の取得 | java.io.File.getParent | java.nio.file.Path.getParent |
ディレクトリ内のファイル一覧の取得 | java.io.File.listfiles | java.nio.file.Files.list |
上記で紹介した機能のの具体的な使用例については、以下の記事を参照して下さい。
【Java】java.nio.fileパッケージの使用例①(ファイルの作成、存在チェック)
【Java】java.nio.fileパッケージの使用例②(移動・コ『ピー、削除)
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
java.nio.channels.FileChannelクラスは、チャネルを使ってファイルに対してのデータの読み込みと出力を行います。チャネルは、ストリームと似た概念ですが、ストリームのように入力と出力に分かれていないのが特徴です。ストリームよりも複雑ですが、一般にストリームを使うより高速にファイルの読み込みと出力が行えます。
また、java.nio.channels.FileChannelクラスには、排他制御など並列処理をサポートするいくつかのメソッドが実装されています。
使い方については、以下の記事で紹介しています。
【Java】FileChannelを使って高速にファイル入出力を行ってみた
当記事では、java.nio.filesパッケージの概要とjava.io.FIleクラスとの違い、そしてストリームよりも高速なファイルの読み込みと出力が行える
java.nio.channels.FileChannelクラスの概要について説明しました。
NIO.2はjava.io.FIleクラスや入出力ストリームを使う場合と比べて、機能や速度面で勝っており、ファイルを扱う際は基本的にはこちらを使うほうが良いです。java.nio.channels.FileChannelクラスは少々複雑ですが、プログラミングにおいて速度は大きなウェイトを占める要素であるため、その分取得できたときのリターンは大きいものになります。
関連記事:
【Java】Pathオブジェクトを生成する方法(java.nio.fileパッケージ)
【Java】java.nio.fileパッケージの使用例①(ファイルの作成、存在チェック)
【Java】java.nio.fileパッケージの使用例②(移動・コピー、削除)
【Java】java.nio.fileパッケージの使用例③(ファイル属性の取得・変更)
【Java】FileChannelを使って高速にファイル入出力を行ってみた
【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
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様