Javaã®Fileã¯ã©ã¹ã¯ä¸å¤ï¼immutableï¼ã¯ã©ã¹ã¨ããç¹ã«é¢ããæ³¨æç¹
é·å¹´Javaãæ¸ãã¦ãã人éã¨ãã¦ã¯ã¡ãã£ã¨æ
ããªããã¨ã«ãå
æ¥ãä¼ç¤¾ã§èªåã®æ¸ããã³ã¼ããåå ã§ã¡ãã£ã¨ãããã°ãåºãã¦ãã¾ãã¾ããããã¡ãã¨ãã¹ããã¡ã¼ã¹ãã§åä½è©¦é¨ã¯æ¸ãã¦ããã®ã§ãããã¹ããä¸ååã§ãããã
ãã°ã®åå ã¯ãFileã¯ã©ã¹ã®ä»æ§ãã¡ãã£ã¨åéããã¦ä½¿ã£ã¦ãããã¨ãåå ã§ãããFileã¯ã©ã¹ã«ã¯renameTo()ã¨ããã¡ã½ããããã£ã¦ããã®ã¡ã½ããã®å¼ã³åºãã«ãããæä½ãæåããã°ãã¨ãã¨Fileã¯ã©ã¹ã®ãªãã¸ã§ã¯ãã«å¯¾å¿ãã¦ãããã¡ã¤ã«ã®ååããã¡ã¤ã«ã·ã¹ãã ä¸ã§å¤æ´ããã¾ããããã§ããã£ãããFileã¯ã©ã¹ãå¯å¤ãªã¯ã©ã¹ã ã¨åéããã¦ãã¾ã£ã¦ããã®ã§ãããå®ã¯ãJava Docã«ãæè¨ããã¦ããéããFileã¯ã©ã¹ã¯ä¸å¤(immutable)ãªã¯ã©ã¹ã§ãããä¸åº¦çæãããç¶æ
ãæ±ºãã¦å¤æ´ããããã¨ããªãè¨è¨ã¨ãªã£ã¦ãã¾ããããã¯ã以ä¸ã®ãã¹ãã±ã¼ã¹ãè¦ãã¨ç¢ºèªã§ãã¾ãã
@Test public void legacyAPI() throws IOException { File srcFile = new File("temp.txt"); File targetFile = new File("temp2.txt"); if (!srcFile.createNewFile()) { throw new IOException(); } if (!srcFile.renameTo(targetFile)) { throw new IOException(); }; assertThat(srcFile.getName(), is("temp.txt")); //srcFileã®ç¶æ ã¯renameåã®ã¾ã¾ã assertThat(targetFile.getName(), is("temp2.txt")); if (!targetFile.delete()) { throw new IOException(); } }
ãã ãè¨ã訳ã§ã¯ããã¾ããããFileã¯ã©ã¹ã®renameTo()ã¨ããã¡ã½ããã¯
boolean renameTo(File dest)
ã¨ããã·ã°ããã£ã§å®ç¾©ããã¦ãããããã«ãç¶æ ã夿´ãããããªé°å²æ°ãªãããFileãä¸å¤ã¨ãããã¨ãå¿ãã¦ããã¨ãç§ã®ããã«ãã£ãããã¹ãã¦ãã¾ãããã§ããå®éãEclipseãªã©ã®IDEã®å ¥åè£å®ã«é ¼ã£ã¦ããã¨ééãããã§ããããã¾ãã«ãæ»ãå¤ã§æåã失æããbooleanã§è¿ã£ã¦ããã®ã§ãããã©ããã¦IOExceptionãéåºããããã«ãªã£ã¦ããªãã®ã§ããããã以ä¸ã®ããã«ãªã£ã¦ããããééãã«ããã¨æãã®ã§ããã©ãã
File renameTo(File dest) throws IOException
ãã®ããã«ä¾å¤ã使ãããæ»ãå¤ã§æå失æã夿ãããã¨ããã®ã¯Fileã¯ã©ã¹ã®ä»ã®ã¡ã½ããã«ãè¦ããã¾ãããå¿
ãæ»ãå¤ããã§ãã¯ããããã«ããå¿
è¦ãããã¾ãããã®ããã«ãªã£ã¦ããåå ã¯Cè¨èªã®é°å²æ°ã®å½±é¿ãåãã¦ãããã¨ã¨ãFileã¯ã©ã¹ãJDK1.0ã®æä»£ããããç¸å½å¤ãã¯ã©ã¹ã§ããã¨ãããã¨ãããããããã¾ãããæ³¨æãå¿
è¦ã ã¨æãã¾ãã
ãªããJava7ããã¯ãã¡ã¤ã«ã·ã¹ãã ãæ±ãæ°ããAPIãå°å
¥ããã¦ãã¾ãã
http://download.java.net/jdk7/docs/api/java/nio/file/package-summary.html
2011-07-07
Fileã¯ã©ã¹ã®ä»£ããã«Pathã¯ã©ã¹ã使ã£ã¦ç¹å®ã®ãã£ã¬ã¯ããªããã¡ã¤ã«ã表ç¾ãããFilesã¯ã©ã¹ã使ã£ã¦å®éã®ãã¡ã¤ã«ã®æä½ãã§ãã¾ãã
@Test public void java7API() throws IOException { Path srcPath = FileSystems.getDefault().getPath("temp.txt"); Path targetPath = FileSystems.getDefault().getPath("temp2.txt"); assertThat(srcPath.toString(), is("temp.txt")); Path createdPath = Files.createFile(srcPath); assertThat(srcPath, is(createdPath)); Files.move(srcPath, targetPath); Files.delete(targetPath); }
Fileã¯ã©ã¹ã¯ä¾ç¶ã¨ãã¦Deprecatedãªããã§ã¯ããã¾ããããJava7ããã¯ãªãã¹ããã¡ãã®APIã使ãããã«ãã¹ãã§ããããã¾ããJava6ã¾ã§ã®ç°å¢ã§ã¯å¿
è¦ã«å¿ãã¦commons-ioãªã©ã®ã©ã¤ãã©ãªã¼ã使ãã¨ããã¨æãã¾ãã
ãªãããã®åé¡ã¯è©±é¡ã®Groovyã使ãã¨ãã«ãåæ§ã«åºãããã¾ãã®ã§æ³¨æãå¿
è¦ã§ãã