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()创建文件时,中间的数字串是个问题,我还没解决,朋友,你能解决么?欢迎指导……
分享到:
相关推荐
在Android开发中,`File`类是用于处理文件和目录的核心工具,它是Java `java.io.File`类的一个实例。这个类提供了与操作系统无关的方式来表示文件和目录路径,并且提供了多种方法来操作这些路径对应的文件。下面我们...
tempFile = File.createTempFile(prefix, suffix, dir); return tempFile.getCanonicalPath(); } } catch (IOException e) { e.printStackTrace(); System.out.println("创建临时文件失败:" + e.getMessage()...
本篇详细介绍了Java中`File`类的基本用法及其相关的常用操作,包括文件和目录的创建、删除以及路径分隔符的使用。通过具体的示例代码加深了对`File`类的理解。这对于理解Java文件系统操作至关重要。
在Java中,可以轻松地创建和管理临时文件,这主要依赖于`java.io.File`类提供的方法。通过设置系统属性`TEMP`和`TMP`来指定临时文件的存储位置。`File.createTempFile(String prefix, String suffix)`方法用于创建一...
在Java中创建文件夹和文件是常见的操作之一,尤其是在处理文件系统或开发需要文件存储的应用时。本篇文章将详细介绍`CreateFileUtil`类中的几个关键方法:`CreateFile`、`createDir`以及`createTempFile`,并深入...
- static File createTempFile(String prefix, String suffix, File directory):在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 - boolean exists():测试此抽象路径名表示的文件或目录...
如`dir.mkdir()`和`file1.createNewFile()`分别创建了一个目录和文件。 `deleteOnExit()`方法是一个实用的功能,它允许我们在程序运行时创建一个文件,并在程序结束时自动删除。例如,`fRun.deleteOnExit()`会在...
File类是Java中处理文件和目录的基础类。它可以用来创建、删除、重命名文件以及检查文件的相关属性。以下是一些File类的常见用法: 1. 构造File对象: - File(String path, String name):根据路径和文件名创建...
在Android开发中,用户交互是至关重要的,而与相机和相册相关的功能是移动应用中常见的需求。本文将深入探讨如何在Android应用中实现拍照、从相册选取照片以及进行文件管理的操作,主要针对Java语言编写的应用。 ...
在Java编程中,生成文件夹和文件是常见的操作,这对于应用程序的数据存储、资源管理等场景至关重要。以下是对标题和描述中所述知识点的详细说明: ### 1. 创建文件夹(目录) 创建文件夹通常使用`java.io.File`类...
File f = File.createTempFile("abc", ".txt"); System.out.println(f.getAbsolutePath()); } // 测试renameto方法 移动和更改问价名 private static void test3() { File f1 = new File("d:/rand.txt"); ...
- `static File createTempFile(String prefix, String suffix, File directory)` - 在指定目录中创建一个新的空文件。 3. **检查文件是否存在**:`boolean exists()` - 检查文件或目录是否存在。 4. **删除文件**...
File类在Java中是用于表示文件和目录路径名的抽象类。它提供了许多方法来操作文件和目录。让我们深入了解一下File类的API及其常用方法。 1. **构造函数**: - `File(File dir, String name)`:创建一个新File实例...
在Java中,可以使用File.createTempFile()方法来创建临时文件。该方法可以在指定的目录下创建一个临时文件,该文件名由prefix和suffix参数指定。 知识点6:目录的创建 在Java中,可以使用File.mkdirs()方法来创建...
- **创建文件**: 使用`File.createTempFile()`可以创建临时文件,而`new File("path").createNewFile()`则可以创建指定路径的文件。 - **删除文件**: `file.delete()`方法用于删除文件,但需要注意的是,如果文件...
File对象中关于建立和删除文件(或目录)的方法包括createNewFile()、createTempFile()、delete()、deleteOnExit()、mkdir()、mkdirs()、renameTo()等方法。 流概述: 流是指任何可以产生数据的数据源,或任何可以...
- Java中的`java.io.File`类是处理文件和目录的核心类,它提供了对文件路径名的各种操作,如构造文件对象、获取文件属性(大小、修改时间等)以及创建、删除文件和目录。 2. **文件创建**: - 使用`File`类的`...
Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位。当我们谈论“Java的文件存储”时,我们关注的是如何在Java应用程序中处理文件的读写、存储和管理。以下是一些相关的Java文件操作知识...