createNewFile (和createTempFile )的区别:
为了更好的测试,我做了两个班:
1、使用createNewFile (创建abc.txt文件:
JVA代码公共类测试文件1 (公共智能列车args )文件f1=新文件(c : ((ABC.txt ) ); try{f1.createNewFile (); system.out.println(F1.getname ); }catch(SDHde ) {e.printStackTrace ); }}控制台输出: abc.txt
ly:"害羞的小兔子,"hxdxxm,SimHei,Arial,SimSun'> 2、使用createTempFile()创建一个abc.txt的文件: Java代码 public class TestFile2 { public static void main(String伶俐的火车 args) { File f1 = new File("C:\"); File f2 = null; try { f2 = File.createTempFile("abc", ".txt", f1); System.out.println(f2.getName()); } catch (sdhd e) { e.printStackTrace(); } } }但是我查看了指定路径,生成了
abc4825787091196303263.txt文件,每一次执行,都能生成不同的文件,但中间的数字都是19位,我查看了Java的File源代码,按住Ctrl+鼠标左击,进入File.class,看到有
Java代码 private static File generateFile(String prefix, String suffix, File dir) throws sdhd { long n = LazyInitialization.random.nextLong(); if (n == Long.MIN_VALUE) { n = 0; // corner case } else { n = Math.abs(n); } return new File(dir, prefix + Long.toString(n) + suffix); }注意函数generateFile()的返回值是new File(dir, prefix + Long.toString(n) + suffix);
由此可明白为什么会生成abc4825787091196303263.txt文件了。