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

公開日: : 最終更新日: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

関連記事

GradleLogoReg

SDKMAN!(GVM) を使って Mac に Gradle をインストールする

長らく Java のアプリ開発には Maven を使ってきたが、時代に取り残されている感じがするので

記事を読む

no image

Stream#filter()で絞り込みmap()で処理するコードスニペット

Java8 から導入された Stream API も少しずつ慣れてきて、「そういえばこういうパターン

記事を読む

GradleLogoReg

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

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

記事を読む

no image

プロセスの起動を確認するプログラム

プロセスが起動しているかを確認するプログラムを Java で書いてみました。Excel のプロセス確

記事を読む

icatch-thumbnail

レスポンスにサムネイル画像を返す API のサンプル

今回は直接 ImageMagick は関係ありませんが、また画像ネタです。この辺りのことを仕事で扱っ

記事を読む

no image

Functions#compose() を使って Function を合成するサンプル(Java8 との比較付き)

Java8 と GoogleGuava の Function について コードの違いを書いた。 その

記事を読む

icatch-upload_1229138273_mini-thumbnail

InputStream に格納されているストリームデータのサイズを取得する

Jersey を使った Web アプリを作成中なんですが、 enctype="multipart/f

記事を読む

icatch-10139609144_5bc33706f9_z-resized

保存ダイアログを表示させてファイルをダウンロードさせる方法

例えば、ブラウザに表示している画像は右クリックを使ってダウンロードできますが、左クリックから保存ダイ

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

Googleアドセンス用(PC)

Message

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


× 7 = 五十 六

次の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 ↑