日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :
Pagetop

Java Zip作成 空フォルダも圧縮させる


バッチ処理の一貫で、ちょっとJavaのプログラムでZipファイルを作成しないといけなくて、こちらのサイトを参考にしました。

結構分かりやすく書いてもらっているので、ためになりました。

(参考サイト)
Java ZIP圧縮する方法 ディレクトリ指定やファイル指定 – ZipEntry・ZipOutputStream

とてもよい記事なんですがハマったところが2つあったので、メモしておきます。
①フォルダ構成
このままのソースだと、Zipファイルの位置とフォルダの位置が同じでないとダメでした。
まっ、作成したあとに移動すれば良いので、それはOK。
最初気が付かなくて、適当にセットしていてあれってなりました。

②空フォルダの取り扱い
中にファイルが入っていない場合、空のフォルダが圧縮されませんでした。
一体どこを修正すれば良いのかソースを追ってここなかと分かったのですが、そもそも空フォルダをどうやって指定するのか。。。

こちらにヒントが。
「名前の最後に"/"を付けてやるとフォルダと認識される」
ZipEntry dir1 = new ZipEntry("dir1/");

(参考サイト)
空フォルダを含むZIPファイルの作成について

ということなので、ソースを以下のように変更。
files.length == 0の時に、フォルダ名に"\\"足したものを追加するようにしました。
こんな感じ。

/**
* ディレクトリ圧縮のための再帰処理
*
* @param outZip ZipOutputStream
* @param baseFile File 保存先ファイル
* @param file File 圧縮したいファイル
*/
private static void archive(ZipOutputStream outZip, File baseFile, File targetFile) {
if ( targetFile.isDirectory() ) {
File[] files = targetFile.listFiles();

//add start 空フォルダも圧縮するように
if(files.length == 0){
archive(outZip, baseFile, targetFile, targetFile.getAbsolutePath().replace(baseFile.getParent(), "").substring(1) + "\\", "Shift_JIS");
}
//add end

for (File f : files) {
if ( f.isDirectory() ) {
archive(outZip, baseFile, f);
} else {
if ( !f.getAbsoluteFile().equals(baseFile) ) {
// 圧縮処理
archive(outZip, baseFile, f, f.getAbsolutePath().replace(baseFile.getParent(), "").substring(1), "Shift_JIS");
}
}
}
}
}


スポンサーサイト
2014-11-12 : Java : コメント : 0 : トラックバック : 0
Pagetop

eclipse テキスト フォント 変更


いつも迷うので、ちょこっとメモ。

人にコードチェックしてもらう時に、ちょっと文字の大きさ大きくしたいときありますよね。

Eclipseで文字の大きさを変える方法


ウィンドウ

設定

一般

外観

色とフォント

基本

テキスト・フォント

編集


階層深すぎ!!
なかなか辿りつけないよね。。。
2014-07-02 : Java : コメント : 0 : トラックバック : 0
Pagetop

Java パスワード ハッシュ関数 Commons Codecライブラリ


以前、ハッシュ関数作成する際に以下の記事を書きました。
DB ハッシュ関数でメッセージダイジェストに変換

ちょっと、使っていたメソッドに不具合なのか、マシン環境によって値が変わるという症状が発生。
しっかり原因解明までする時間が無かったのですが、ひとまず、ライブラリのを最新バージョンの使って解決したのでメモしておきます。

Commons CodecライブラリのDigestUtilsクラスを使用します。
Download Commons Codecサイトから最新版ダウンロード
EclipseのJarファイルの追加で、commons-codec-1.8.jarを追加

DigestUtils.sha256Hex(data)でOK。
この場合、SHA-256でハッシュ化します。
(ver1.3には無かったけど、2013年7月時点最新ver1.8にはありました)

(参考サイト)
Java:パスワードの暗号化(ハッシュ化)
2013-07-05 : Java : コメント : 0 : トラックバック : 0
Pagetop

サーブレットからJSONを返すときのContentTypeの記述


現在、GoogleMapsAPI使っていて、DBの位置情報をJSON形式にして、サーブレットで返すときにちょっとミスっていたのでメモ。

JSON形式でUTF8を返すときには、response.setContentTypeは以下のようにしないといけないんですね。

response.setContentType("application/json; charset=UTF-8");

(参考サイト)
JSON文字列を受信(サーブレット→javascript)
2013-05-21 : Java : コメント : 0 : トラックバック : 0
Pagetop

Eclipse Javaファイル名を変更する方法


EclipseでJavaファイル名を変更しようとして、Javaファイル名を右クリックして、メニュー見ても[名前変更]が見当たらない。。。

こういうのは、調べたら、なんてことは無いんだけど、
どうせ、また同じこと調べることになる自信があるので、メモしておこっと。

Eclipse Javaファイル名を変更する方法


名前変更したいJavaファイルを右クリック

[リファクタリング]

[名前変更]


※[リファクタリング]が、[名前変更]の上の階層にあるのが、イメージわかなかったっていうのが、オチかな。

(参考サイト)
Eclipse上で、Javaソースコード以外のファイル名を変更するには?
2013-04-29 : Java : コメント : 0 : トラックバック : 0
Pagetop
ホーム  次のページ »

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。