◆作成したwarファイル内容の確認:
・コマンド:
>jar tvf confirmFile.war
・説明:
tvf:jarコマンドのパラメータ組み合わせ
confirmFile.war:確認したいwarファイル
・補足:
パラメータの中に”v”がなければ、内容リストだけが表示される、
詳細のサイズ、日付など情報は表示されていない。
◆warファイル/jarファイルの解凍:
アーカイブされた内容は、warファイル/jarファイルから解凍(抽出)されること。
・コマンド:
>jar xvf confirmFile.war
・説明:
xvf:jarコマンドのパラメータ組み合わせ
confirmFile.war:解凍したいwarファイル
2008年8月6日水曜日
jarコマンド(二):warファイルの更新
◆Warファイルの更新:
・コマンド:
>jar uvf existedFile.war sourceFile
・説明:
uvf:jarコマンドのパラメータ組み合わせ
existedFile.war:既存のwarファイルを更新するために、同じな名前は使う
sourceFile:このところにひとつのファイルでもいいですが、普通の場合
”*”を使って、各Classファイルを含むすべてのリソースファイルを
用いて、一つのwarファイルを作成することです。
>jar cvf createdFile.war *
・補足:
上記コマンドの場合、既存のwarファイルの内容について、下記のこと
がある:
①更新のソースファイルの内容と違う部分があれば、そのまま新しい
warファイルに残る。
②更新のソースファイルの内容と同じ部分があれば、更新される。
・コマンド:
>jar uvf existedFile.war sourceFile
・説明:
uvf:jarコマンドのパラメータ組み合わせ
existedFile.war:既存のwarファイルを更新するために、同じな名前は使う
sourceFile:このところにひとつのファイルでもいいですが、普通の場合
”*”を使って、各Classファイルを含むすべてのリソースファイルを
用いて、一つのwarファイルを作成することです。
>jar cvf createdFile.war *
・補足:
上記コマンドの場合、既存のwarファイルの内容について、下記のこと
がある:
①更新のソースファイルの内容と違う部分があれば、そのまま新しい
warファイルに残る。
②更新のソースファイルの内容と同じ部分があれば、更新される。
jarコマンド(一):warファイルの新規作成
このコマンドは、warファイルの作成とjarファイルの作成ともに使える。
◆Warファイルの新規作成:
・コマンド:
>jar cvf createdFile.war sourceFile
・説明:
cvf:jarコマンドのパラメータ組み合わせ
createdFile.war:作成したいwarファイル
sourceFile:このところにひとつのファイルでもいいですが、普通の場合
”*”を使って、各Classファイルを含むすべてのカレントディレクトリ
にあるリソースファイルを用いて、一つのwarファイルを作成する
ことです。
>jar cvf createdFile.war *
・補足:
上記コマンドの場合、既存の同じ名前のwarファイルがあった場合、
中の内容は全部なくなる。
◆Warファイルの新規作成:
・コマンド:
>jar cvf createdFile.war sourceFile
・説明:
cvf:jarコマンドのパラメータ組み合わせ
createdFile.war:作成したいwarファイル
sourceFile:このところにひとつのファイルでもいいですが、普通の場合
”*”を使って、各Classファイルを含むすべてのカレントディレクトリ
にあるリソースファイルを用いて、一つのwarファイルを作成する
ことです。
>jar cvf createdFile.war *
・補足:
上記コマンドの場合、既存の同じ名前のwarファイルがあった場合、
中の内容は全部なくなる。
2008年8月1日金曜日
FileChannelクラスのことは、知ってるの?
1、特徴
このクラスは、バイトチャネルに対する一般的な操作 (読み込み、書き込み、
クローズ) のほかに、次のようなファイル固有の操作を定義します。
◆バイトの読み込みや書き込みは、チャネルの現在位置に影響を及ぼす
ことなく、ファイル内の絶対位置で行われる
◆ファイルの領域はメモリに直接マッピングされる。ファイルのサイズが
大きい場合は、通常のread メソッドやwrite メソッドを呼び出すより、この
方法のほうが効率的
◆ファイルの更新は、基準となる記憶装置に強制書き出しされる。
したがって、システムがクラッシュしてもデータの損失は回避される
◆バイトはファイルからその他のチャネルへ転送できる。反対に、
その他のチャネルから転送することもできる。多くのオペレーティング
システムをファイルシステムのキャッシュと直接接続し、データを非常
に速い速度で送受信することにより、この転送を最適化できる
◆ファイルの領域は、その他のプログラムからアクセスできないよう
にロックできる
2.メソッド:
このクラスは、既存のファイルを開くメソッドや新しいファイルを作成する
メソッドは定義しません。これらのメソッドは、将来のリリースで追加される
可能性があります。このたびのリリースでファイルチャネルを取得したい
場合は、既存の FileInputStream、FileOutputStream、RandomAccessFile の
いずれかのオブジェクトの getChannel メソッドを呼び出します。こうすること
により、基準となる同じファイルに接続されたファイルチャネルが
返されます。
3.ファイルチャネルの状態:
ファイルチャネルの状態は、チャネルを返した getChannel メソッドを持つ
オブジェクトの状態と密接な関係にあります。たとえば、チャネルの位置を
明示的に、あるいはバイトの読み込みや書き込みによって変更すると、
発生元のオブジェクトのファイル位置が変わります (逆も同様)。ファイル
チャネルからファイルの長さを変更すると、発生元オブジェクトから見た
ときの長さが変わります (逆も同様)。バイトの書き込みによってファイル
のコンテンツを変更すると、元のオブジェクトから見たときのコンテンツが
変わります (逆も同様)。
4.読み書きインスタンス:
このクラスは、さまざまな点で、「読み込み可能」、「書き込み可能」または
「読み込みと書き込みが可能」であるインスタンスが必要なことを条件
として指定します。FileInputStream インスタンスの getChannel メソッドで取得
したチャネルは読み込み可能です。FileOutputStream インスタンスの
getChannel メソッドで取得したチャネルは書き込み可能です。そして、
RandomAccessFile インスタンスの getChannel メソッドで取得した
チャネルは、インスタンスがモード "r" で作成されている場合は
読み込み可能、モード "rw"で作成されている場合は読み込みと
書き込みが可能です。
5.チャネルのオーペンとクローズ:
チャネルの状態はオープンまたはクローズです。作成時はオープンですが、
クローズするとクローズしたままになります。チャネルがクローズしている
状態で入力操作を行おうとすると、ClosedChannelException がスローされ
ます。チャネルがオープンしているかどうかは isOpen メソッドの呼び出し
によって判断できます。
===========補足===============
1.FileChannelの親インタフェース:
public interface Channel:
入出力操作に関係するチャネルです。
2.チャネルの定義:
チャネルは、ハードウェアデバイス、ファイル、ネットワークソケットのほか、
個別の入出力操作 (読み込み、書き込みなど) を実行できるプログラム
コンポーネントなどのエンティティへのオープン接続を表します。
やっと終わった^^^^^
このクラスは、バイトチャネルに対する一般的な操作 (読み込み、書き込み、
クローズ) のほかに、次のようなファイル固有の操作を定義します。
◆バイトの読み込みや書き込みは、チャネルの現在位置に影響を及ぼす
ことなく、ファイル内の絶対位置で行われる
◆ファイルの領域はメモリに直接マッピングされる。ファイルのサイズが
大きい場合は、通常のread メソッドやwrite メソッドを呼び出すより、この
方法のほうが効率的
◆ファイルの更新は、基準となる記憶装置に強制書き出しされる。
したがって、システムがクラッシュしてもデータの損失は回避される
◆バイトはファイルからその他のチャネルへ転送できる。反対に、
その他のチャネルから転送することもできる。多くのオペレーティング
システムをファイルシステムのキャッシュと直接接続し、データを非常
に速い速度で送受信することにより、この転送を最適化できる
◆ファイルの領域は、その他のプログラムからアクセスできないよう
にロックできる
2.メソッド:
このクラスは、既存のファイルを開くメソッドや新しいファイルを作成する
メソッドは定義しません。これらのメソッドは、将来のリリースで追加される
可能性があります。このたびのリリースでファイルチャネルを取得したい
場合は、既存の FileInputStream、FileOutputStream、RandomAccessFile の
いずれかのオブジェクトの getChannel メソッドを呼び出します。こうすること
により、基準となる同じファイルに接続されたファイルチャネルが
返されます。
3.ファイルチャネルの状態:
ファイルチャネルの状態は、チャネルを返した getChannel メソッドを持つ
オブジェクトの状態と密接な関係にあります。たとえば、チャネルの位置を
明示的に、あるいはバイトの読み込みや書き込みによって変更すると、
発生元のオブジェクトのファイル位置が変わります (逆も同様)。ファイル
チャネルからファイルの長さを変更すると、発生元オブジェクトから見た
ときの長さが変わります (逆も同様)。バイトの書き込みによってファイル
のコンテンツを変更すると、元のオブジェクトから見たときのコンテンツが
変わります (逆も同様)。
4.読み書きインスタンス:
このクラスは、さまざまな点で、「読み込み可能」、「書き込み可能」または
「読み込みと書き込みが可能」であるインスタンスが必要なことを条件
として指定します。FileInputStream インスタンスの getChannel メソッドで取得
したチャネルは読み込み可能です。FileOutputStream インスタンスの
getChannel メソッドで取得したチャネルは書き込み可能です。そして、
RandomAccessFile インスタンスの getChannel メソッドで取得した
チャネルは、インスタンスがモード "r" で作成されている場合は
読み込み可能、モード "rw"で作成されている場合は読み込みと
書き込みが可能です。
5.チャネルのオーペンとクローズ:
チャネルの状態はオープンまたはクローズです。作成時はオープンですが、
クローズするとクローズしたままになります。チャネルがクローズしている
状態で入力操作を行おうとすると、ClosedChannelException がスローされ
ます。チャネルがオープンしているかどうかは isOpen メソッドの呼び出し
によって判断できます。
===========補足===============
1.FileChannelの親インタフェース:
public interface Channel:
入出力操作に関係するチャネルです。
2.チャネルの定義:
チャネルは、ハードウェアデバイス、ファイル、ネットワークソケットのほか、
個別の入出力操作 (読み込み、書き込みなど) を実行できるプログラム
コンポーネントなどのエンティティへのオープン接続を表します。
やっと終わった^^^^^
ファイルの読み書きと文字のエンコード
動作環境:
JDK5.0
システム文字コード:Shift-JIS
ファイル文字コード:EUC-JP
1.Javaの文字データ処理流れ:
Javadでは、文字データをUnicodeで管理します。
◆読み込み:
Unicode以外の文字モードのデータを読み込む場合は、Unicodeへエンコードして読み込みます。
◆書き込み:
書き込み先の文字コードはUnicode以外の場合、Unicodeで管理されている文字データを書き込み先
の文字コードへ、エンコードして書き込みます。
書き込み先の文字コードを指定してない場合、Javaを実行しているシステムのデフォルトの
エンコード方式が使用されます。(今回はShift-JISです)
◆システムのエンコードの確認:
関数System.getProperty("file.encoding")を使って、システムのエンコードの確認ができます。
2.ファイル操作Javaクラスの選択:
◆FileReader、FileWriter:
この二つのクラスを使って、文字データを読み書く場合は、システムのデフォルトの
エンコードが使用されます。
◆FileInputStream、FileOutputStream:
エンコードを指定して、ファイルの入出力を行いたい場合、この二つのクラスを使います。
3.エンコード指定の読み込みオブジェクト、書き込みオブジェクトの作成:
◆読み込みオブジェクト:
読み込みの場合、ファイルのエンコードにかかわらず、JavaがUnicodeでファイルの文字データを
エンコードして処理しますから、特にエンコードを指定する必要がないでしょう。
※下記はサンプルソース:
// Readerオブジェクトの作成
FileInputStream reader=null;
try {
reader = new FileInputStream(filePath);
} catch (FileNotFoundException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
return null;
}
InputStreamReader streamReader=null;
try {
streamReader = new InputStreamReader(reader , "JISAutoDetect");
} catch (UnsupportedEncodingException e2) {
// TODO 自動生成された catch ブロック
e2.printStackTrace();
return null;
}
BufferedReader objBufferedReader = new BufferedReader(streamReader);
◆書き込みオブジェクト:
今回書き込み先のエンコード(EUC-JP)は、システムのデフォルトのエンコード(Shift-JIS)と
違いますから、エンコードの指定が必要になります。
※下記はサンプルソース:
// Writerオブジェクトの作成
FileOutputStream writer=null;
try {
writer = new FileOutputStream(filePath);
} catch (FileNotFoundException e3) {
// TODO 自動生成された catch ブロック
e3.printStackTrace();
return null;
}
OutputStreamWriter streamWriter=null;
try {
streamWriter = new OutputStreamWriter(writer , "EUC-JP");
} catch (UnsupportedEncodingException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
return null;
}
BufferedWriter objWriter = new BufferedWriter(streamWriter);
==終わり==
JDK5.0
システム文字コード:Shift-JIS
ファイル文字コード:EUC-JP
1.Javaの文字データ処理流れ:
Javadでは、文字データをUnicodeで管理します。
◆読み込み:
Unicode以外の文字モードのデータを読み込む場合は、Unicodeへエンコードして読み込みます。
◆書き込み:
書き込み先の文字コードはUnicode以外の場合、Unicodeで管理されている文字データを書き込み先
の文字コードへ、エンコードして書き込みます。
書き込み先の文字コードを指定してない場合、Javaを実行しているシステムのデフォルトの
エンコード方式が使用されます。(今回はShift-JISです)
◆システムのエンコードの確認:
関数System.getProperty("file.encoding")を使って、システムのエンコードの確認ができます。
2.ファイル操作Javaクラスの選択:
◆FileReader、FileWriter:
この二つのクラスを使って、文字データを読み書く場合は、システムのデフォルトの
エンコードが使用されます。
◆FileInputStream、FileOutputStream:
エンコードを指定して、ファイルの入出力を行いたい場合、この二つのクラスを使います。
3.エンコード指定の読み込みオブジェクト、書き込みオブジェクトの作成:
◆読み込みオブジェクト:
読み込みの場合、ファイルのエンコードにかかわらず、JavaがUnicodeでファイルの文字データを
エンコードして処理しますから、特にエンコードを指定する必要がないでしょう。
※下記はサンプルソース:
// Readerオブジェクトの作成
FileInputStream reader=null;
try {
reader = new FileInputStream(filePath);
} catch (FileNotFoundException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
return null;
}
InputStreamReader streamReader=null;
try {
streamReader = new InputStreamReader(reader , "JISAutoDetect");
} catch (UnsupportedEncodingException e2) {
// TODO 自動生成された catch ブロック
e2.printStackTrace();
return null;
}
BufferedReader objBufferedReader = new BufferedReader(streamReader);
◆書き込みオブジェクト:
今回書き込み先のエンコード(EUC-JP)は、システムのデフォルトのエンコード(Shift-JIS)と
違いますから、エンコードの指定が必要になります。
※下記はサンプルソース:
// Writerオブジェクトの作成
FileOutputStream writer=null;
try {
writer = new FileOutputStream(filePath);
} catch (FileNotFoundException e3) {
// TODO 自動生成された catch ブロック
e3.printStackTrace();
return null;
}
OutputStreamWriter streamWriter=null;
try {
streamWriter = new OutputStreamWriter(writer , "EUC-JP");
} catch (UnsupportedEncodingException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
return null;
}
BufferedWriter objWriter = new BufferedWriter(streamWriter);
==終わり==
登録:
投稿 (Atom)