ファイルに関するユーティリティ

公開日: : 最終更新日:2014/01/26 Java

ファイルに関するスニペットをいくつか書いた。いつかコピペする日が来ると思うのでメモしておく。

作成したスニペット

Gist に登録済み。

/**
 * File オブジェクトとそのオブジェクトが表す実ファイルを作成する。
 * 
 * @param parent ファイルを作成するディレクトリ
 * @param fileName ファイル名
 * @return 作成したファイルオブジェクト
 * @throws IOException ファイルの作成に失敗した場合
 */
public static File create(File parent, String fileName) throws IOException {
    File file = new File(parent, fileName);
    file.createNewFile();
    return file;
}
 
/**
 * ファイルを作成する(実ファイルを作成する)。
 * 
 * @param file 作成する File オブジェクト 
 * @param content ファイルに書き込む内容
 * @throws IOException ファイルの作成に失敗した場合
 */
public static void write(File file, String content) throws IOException {
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
    pw.println(content);
    pw.close();
}
 
/**
 * ファイルを読み込む。
 * 
 * @param file 読み込むファイル
 * @return 読み込んだファイルの内容
 * @throws IOException ファイルの読み込みに失敗した場合
 */
public static String read(File file) throws IOException {
    StringBuilder content = new StringBuilder();
    String line = "";
    BufferedReader in = null;
    try {
        in = new BufferedReader(new FileReader(file));
        while ((line = in.readLine()) != null) {
            content.append(line);
        }
    } finally {
        if (in != null) {
            in.close();
        }
    }
    return content.toString();
}
 
/**
 * ファイルをリネームする。
 * 
 * @param src リネーム元の File オブジェクト
 * @param dest リネーム先の File オブジェクト
 * @throws IOException ファイルのリネームに失敗した場合
 */
public static void rename(File src, File dest) throws IOException {
    FileUtils.copyFile(src, dest);
    FileUtils.forceDelete(src);
}
 
/**
 * ファイルを削除する。
 * 
 * @param path 削除するファイルのパス
 * @throws IOException ファイルの削除に失敗した場合
 */
public static void delete(String path) throws IOException {
    File file = new File(path);
    if(file.exists()) {
        FileUtils.forceDelete(file);
    }
}
 
/**
 * ファイルを移動する。
 * 
 * @param src 移動元のパス
 * @param dest 移動先のパス
 * @throws IOException ファイル移動に失敗した場合
 */
public static void move(String src, String dest) throws IOException {
    Path srcPath = FileSystems.getDefault().getPath(src);
    Path destPath = FileSystems.getDefault().getPath(dest);
    Files.move(srcPath, destPath, StandardCopyOption.REPLACE_EXISTING);
}
 
/**
 * ファイルをコピーする。
 * 
 * @param srcPath コピー元のファイルパス
 * @param destPath コピー先のファイルパス
 * @throws IOException ファイルのコピーに失敗した場合
 */
public static void copy(String srcPath, String destPath) throws IOException {
    FileUtils.copyFile(new File(srcPath), new File(destPath));
}

使用したソフトウェアのバージョン

Java のバージョンは次の通り。

$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

あと、Commons IO の FileUtils も使っている。バージョンは次の通り。。。古いな。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.4</version>
</dependency>

Included file 'social/script' not found in _includes directory

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

google-gson でシリアライズ・デシリアライズしたサンプル

これまで Java で JSON を扱うときは JSONIC を使っていたが、google-gson

記事を読む

medium_2055608272

指定した年月の日付を Calendar オブジェクトの一覧で取得する

小ワザです。 業務で、指定した年月の日付を Calendar オブジェクトの一覧で取得する必要があり

記事を読む

no image

Java から VBScript を使って Excel を印刷する

背景 Java のデスクトップアプリを作成していたときの要件に「Excel で作成された帳票を印刷

記事を読む

no image

Jetty でシンプルなプロジェクトを作成してみた

プロトタイプを作成するなら Tomcat よりも Jetty のほうがさらっと出来そうだなぁ、と今さ

記事を読む

icatch_2185253176-resized

Java8 の Optional 型を返す Generics を使ったメソッドを定義する

Java8 の Optional とガード節 に続いて Java8 の Optional ネタ。今回

記事を読む

icatch-zip_524574337_mini-thumbnail

Java でファイルが1つだけ圧縮された zip を解凍するサンプル

ファイルが1つだけ圧縮された zip を解凍するサンプルです。 単一ファイルが圧縮された zip

記事を読む

GradleLogoReg

Gradle で Java アプリのプロジェクトを作成して Eclipse にインポートするまでの手順

Mac に SDKMAN! を使って Gradle をインストールしたので、実際にプロジェクトを作成

記事を読む

no image

ファイルの拡張子が JPG であるかを問い合わせるスニペット

特に目新しいこともないが、同じようなことをする機会があるかもしれないのでメモ。Gist にも登録済み

記事を読む

no image

サーブレットでクラスパス上にあるプロパティファイルを参照するスニペット

よく使うわりにはいつも調べているのでいい加減メモすることにした。 "app.proper

記事を読む

no image

画像ファイルのサイズ(縦横じゃなくて容量)を取得するスニペット

File#length で取得できるとは知らなかった。Gist にも登録済み。 /** * 画

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


二 − 2 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑