2015-01-10 12 views

cevap

20

emin değil misiniz, ama mesela istediğini:

try { 
    Files.createFile(thePath); 
} catch (FileAlreadyExistsException ignored) { 
} 

Ve başka çözümler vardır; Örneğin: Dosya oluşturma başarısız olursa File aksine bu istisnaları atmak olacağını

if (!Files.exists(thePath, LinkOption.NOFOLLOW_LINKS)) 
    Files.createFile(thePath); 

Not! Ve bununla ilgili olanlar (örneğin, AccessDeniedException, ReadOnlyFileSystemException, vb.)

Daha fazla bilgi için bkz. here. Ayrıca bkz. why you should migrate to java.nio.file, quickly. Eğer yöntemleri Dosyalar sınıf kullanabilirsiniz NIO.2 kullanmak istiyorsanız

+0

Yani bunun için tek bir hat kodu yok mu? – emotionull

+2

Hayır, ama gerçekten önemli mi? ;) İsterseniz kendi yardımcı programınızı oluşturabilirsiniz, bu gerçekten sorun değil – fge

+2

deneyin {Files.createFile (thePath); } catch (FileAlreadyExistsException yok sayıldı) {} – mac01021

1

Sen

File f = new File("pathToYourFile"); 
if(!f.exists() && !f.isDirectory()) 
{ 
    f.createNewFile() 
} 

yapabilirsiniz.

boolean exists(Path path,LinkOption. . . options) 
Path createTempFile(Path dir, String prefix,String suffix, FileAttribute<?>. . . attrs) 
createFile(Path path, FileAttribute<?>... attrs) 

FGE yorumlar createNewFile() yöntemlerde bahsettiniz dosyanın gerçekten oluşturulan veya olmasaydı belirten boolean değer döndürür. Ne yazık ki neden başarısız olduğunu bilmenin bir yolu yok. Aslında bu, NIO.2 I/O API'lerinin tanıtılmasının nedenlerinden biridir.

+1

Ve ... '.createNewFile()' sonucunu kontrol etmiyorsunuz! – fge