23
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Java】一時ファイルを作成する

Last updated at Posted at 2017-06-29

#目的

  • 任意のディレクトリにファイルを作成したい。
  • 複数作りたいので、ファイル名は被って欲しくない。
  • 作成したファイルは一時的に利用して、破棄したい。

#微妙なやり方
ファイル名を一意にするために、現在のミリ秒を利用した例。
勿論、確実にかぶらないとは言い切れない。。。

// 現在のミリ秒を取得
long millTime = System.currentTimeMillis();
String fileName = "tmp_" + millTime + ".txt";
File file = new File(fileName);

#素敵なやり方
FilesクラスのcreateTempFileメソッドを利用する。(Java7以降)

Files.createTempFile(Paths.get("任意のディレクトリ"), "prefix", "suffix");

以下は、一時ファイルを作成し、書き込んだのち、削除する例。

File file = null;
try {
  Path tmpPath = Files.createTempFile(Paths.get("/tmp"), "prefix", ".suffix");
  file = tmpPath.toFile();
  
  // ファイルに書き込み
  FileWriter fw = new FileWriter(file, true);
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.write("こんにゃく");
  pw.flush();
  pw.close();
} catch (IOException e) {
  e.printStackTrace();
} finally {
 // ファイルを削除
  if (file != null && file.exists()) {
    file.delete();
  }
}

Java6までの場合は、FileクラスのcreateTempFileメソッドを使えばできる。
参考
https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html#createTempFile-java.lang.String-java.lang.String-java.io.File-

23
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?