`
子衿青青
  • 浏览: 110962 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

File中createNewFile()和createTempFile()区别

阅读更多

createNewFile()和createTempFile()区别:

为了更好地测试,我建了两个类:

 

1、使用createNewFile()创建一个abc.txt的文件:

public class TestFile1 {
	
	public static void main(String[] args) {
		File f1 = new File("C:\\abc.txt");
		try {
			f1.createNewFile();
			System.out.println(f1.getName());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 

 

控制台输出:
abc.txt

 

2、使用createTempFile()创建一个abc.txt的文件:

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 (IOException e) {
			e.printStackTrace();
		}
	}

}

 
控制台输出:

但是我查看了指定路径,生成了

abc4825787091196303263.txt文件,每一次执行,都能生成不同的文件,但中间的数字都是19位,我查看了Java的File源代码,按住Ctrl+鼠标左击,进入File.class,看到有

private static File generateFile(String prefix, String suffix, File dir)
        throws IOException
    {
        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);
    }

 

    public static File createTempFile(String prefix, String suffix,
				      File directory)
        throws IOException
    {
	if (prefix == null) throw new NullPointerException();
	if (prefix.length() < 3)
	    throw new IllegalArgumentException("Prefix string too short");
	String s = (suffix == null) ? ".tmp" : suffix;
	if (directory == null) {
            String tmpDir = LazyInitialization.temporaryDirectory();
	    directory = new File(tmpDir, fs.prefixLength(tmpDir));
	}
	SecurityManager sm = System.getSecurityManager();
	File f;
	do {
	    f = generateFile(prefix, s, directory);
	} while (!checkAndCreate(f.getPath(), sm));
	return f;
    }

 注意函数generateFile()的返回值是new File(dir, prefix + Long.toString(n) + suffix);

由此可明白为什么会生成abc4825787091196303263.txt文件了。

 

 

但还有个问题,如果使用createTempFile()创建文件时,中间的数字串是个问题,我还没解决,朋友,你能解决么?欢迎指导……

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    Android中File类的定义与常用方法.pdf

    在Android开发中,`File`类是用于处理文件和目录的核心工具,它是Java `java.io.File`类的一个实例。这个类提供了与操作系统无关的方式来表示文件和目录路径,并且提供了多种方法来操作这些路径对应的文件。下面我们...

    java 创建文件夹或文件

    tempFile = File.createTempFile(prefix, suffix, dir); return tempFile.getCanonicalPath(); } } catch (IOException e) { e.printStackTrace(); System.out.println("创建临时文件失败:" + e.getMessage()...

    javaIO流笔记

    本篇详细介绍了Java中`File`类的基本用法及其相关的常用操作,包括文件和目录的创建、删除以及路径分隔符的使用。通过具体的示例代码加深了对`File`类的理解。这对于理解Java文件系统操作至关重要。

    java IO操作总结

    在Java中,可以轻松地创建和管理临时文件,这主要依赖于`java.io.File`类提供的方法。通过设置系统属性`TEMP`和`TMP`来指定临时文件的存储位置。`File.createTempFile(String prefix, String suffix)`方法用于创建一...

    java创建文件夹及文件代码

    在Java中创建文件夹和文件是常见的操作之一,尤其是在处理文件系统或开发需要文件存储的应用时。本篇文章将详细介绍`CreateFileUtil`类中的几个关键方法:`CreateFile`、`createDir`以及`createTempFile`,并深入...

    3JAVA编程高级-文件与流.pdf

    - static File createTempFile(String prefix, String suffix, File directory):在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 - boolean exists():测试此抽象路径名表示的文件或目录...

    javaIO文件操作.pdf

    如`dir.mkdir()`和`file1.createNewFile()`分别创建了一个目录和文件。 `deleteOnExit()`方法是一个实用的功能,它允许我们在程序运行时创建一个文件,并在程序结束时自动删除。例如,`fRun.deleteOnExit()`会在...

    javaIO流编程.pdf

    File类是Java中处理文件和目录的基础类。它可以用来创建、删除、重命名文件以及检查文件的相关属性。以下是一些File类的常见用法: 1. 构造File对象: - File(String path, String name):根据路径和文件名创建...

    Android中照相,从相册选取照片,android拍照或从相册选择,Java

    在Android开发中,用户交互是至关重要的,而与相机和相册相关的功能是移动应用中常见的需求。本文将深入探讨如何在Android应用中实现拍照、从相册选取照片以及进行文件管理的操作,主要针对Java语言编写的应用。 ...

    java生成文件夹和文件的简单示例分享

    在Java编程中,生成文件夹和文件是常见的操作,这对于应用程序的数据存储、资源管理等场景至关重要。以下是对标题和描述中所述知识点的详细说明: ### 1. 创建文件夹(目录) 创建文件夹通常使用`java.io.File`类...

    IO输入输出留

    File f = File.createTempFile("abc", ".txt"); System.out.println(f.getAbsolutePath()); } // 测试renameto方法 移动和更改问价名 private static void test3() { File f1 = new File("d:/rand.txt"); ...

    java数据流

    - `static File createTempFile(String prefix, String suffix, File directory)` - 在指定目录中创建一个新的空文件。 3. **检查文件是否存在**:`boolean exists()` - 检查文件或目录是否存在。 4. **删除文件**...

    File的API和常用方法详解_动力节点Java学院整理

    File类在Java中是用于表示文件和目录路径名的抽象类。它提供了许多方法来操作文件和目录。让我们深入了解一下File类的API及其常用方法。 1. **构造函数**: - `File(File dir, String name)`:创建一个新File实例...

    Java创建文件夹及文件实例代码

    在Java中,可以使用File.createTempFile()方法来创建临时文件。该方法可以在指定的目录下创建一个临时文件,该文件名由prefix和suffix参数指定。 知识点6:目录的创建 在Java中,可以使用File.mkdirs()方法来创建...

    java 模拟windows文件操作

    - **创建文件**: 使用`File.createTempFile()`可以创建临时文件,而`new File("path").createNewFile()`则可以创建指定路径的文件。 - **删除文件**: `file.delete()`方法用于删除文件,但需要注意的是,如果文件...

    jAVA程序设计基础PPT教案学习.pptx

    File对象中关于建立和删除文件(或目录)的方法包括createNewFile()、createTempFile()、delete()、deleteOnExit()、mkdir()、mkdirs()、renameTo()等方法。 流概述: 流是指任何可以产生数据的数据源,或任何可以...

    文件处理方法类

    - Java中的`java.io.File`类是处理文件和目录的核心类,它提供了对文件路径名的各种操作,如构造文件对象、获取文件属性(大小、修改时间等)以及创建、删除文件和目录。 2. **文件创建**: - 使用`File`类的`...

    java的文件

    Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位。当我们谈论“Java的文件存储”时,我们关注的是如何在Java应用程序中处理文件的读写、存储和管理。以下是一些相关的Java文件操作知识...

Global site tag (gtag.js) - Google Analytics