createNewFileとcreateTempFileの違い

1413 ワード

最近コードを見る時に方法を見ました。File.create TempFile()からFile.create NewFile()方法を連想しました。しばらくは両者の違いが分かりませんでした。全部新しいファイルを作るという感じがしました。その後、api文書の紹介を調べて、自分で実験して、やっとはっきりと認識しました。
1.FileのcreateNewFile()方法: 
      createNewFile();返し値はブックランです。方法紹介:この抽象パス名で指定された名前のファイルが存在しない場合のみ、新しい空のファイルを分割して作成することはできません。
使用:
File file = new File("D:\\test\\1.txt");
boolean res = file.createNewFile();
if(!res)System.out.println("    !");
D:/testディレクトリに1.txtファイルがない場合、このファイルを作成します。
testディレクトリがない場合は、直接に異常を投げます。もし1.txtが既に存在したら、ファイル作成に失敗します。
createNewFile()メソッドは、抽象的なパスに基づいて新しい空のファイルを作成し、抽象的なパスで指定されたファイルが存在するときに作成に失敗したことが分かります。
2.FileのcreateTempFile()方法は、2つの呼び出し方式があります。createTempFile(String prefix、String suffix)。デフォルトの一時ファイルディレクトリに空のファイルを作成し、与えられたプレフィックスと接尾辞を使って名前を生成します。createTempFile(String prefix、String suffix、File directory)指定されたディレクトリに新しい空のファイルを作成し、与えられたプレフィックスとサフィックス文字列を使って名前を生成します。
File file2 = new File("D:\\temp");// D;/temp      
File tempFile1= file2.createTempFile("msg", ".tmp",file2);
File tempFile2 = file2.createTempFile("msg", ".tmp");
System.out.println(tempFile2.getAbsolutePath());
このように考えられます。createTempFile()メソッドは、指定されたディレクトリの下にtempファイルを作成し、directoryタイプはFileであり、パスが存在しないと作成に失敗します。createTempFile(String prefix、String suffix)メソッドのデフォルトの保存経路はC:\Dockments and Settings\Administrtor\Local Settings\Tempです。