在 java 中创建具有指定名称的临时文件
create a temporary file with a specified name in java
我有一个 Byte[] 数组,我想将其内容放入一个临时文件中。
我试过这样做
try {
tempFile = File.createTempFile("tmp", null);
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(sCourrier.getBody());
} catch (IOException e) {
e.printStackTrace();
}
但我希望我自己指定文件名,而不是由 jvm 生成
您可以直接给出位置和文件名,或者您可以访问本地文件系统并找到临时目录
String tempDir=System.getProperty("java.io.tmpdir");
您可以使用临时目录和自定义文件名。
public static void main(String[] args) {
try {
String tempDir=System.getProperty("java.io.tmpdir");
String sCourrier ="sahu";
File file = new File(tempDir+"newfile.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(sCourrier.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
您可以使用 Guava Files.createTempDir()
:
File file = new File(Files.createTempDir(), fileName.txt);
但因为 API 已被弃用,他们还建议使用带有更多参数的 Nio:
Path createTempDirectory(String prefix, FileAttribute<?>... attrs)
所以如果你自己有方法就更好了:
File createTempFile(String fileName, String content) throws IOException {
String dir = System.getProperty("java.io.tmpdir");
File file = new File(dir + fileName);
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(content.getBytes(StandardCharsets.UTF_8));
}
return file;
}
我有一个 Byte[] 数组,我想将其内容放入一个临时文件中。
我试过这样做
try {
tempFile = File.createTempFile("tmp", null);
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(sCourrier.getBody());
} catch (IOException e) {
e.printStackTrace();
}
但我希望我自己指定文件名,而不是由 jvm 生成
您可以直接给出位置和文件名,或者您可以访问本地文件系统并找到临时目录
String tempDir=System.getProperty("java.io.tmpdir");
您可以使用临时目录和自定义文件名。
public static void main(String[] args) {
try {
String tempDir=System.getProperty("java.io.tmpdir");
String sCourrier ="sahu";
File file = new File(tempDir+"newfile.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(sCourrier.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
您可以使用 Guava Files.createTempDir()
:
File file = new File(Files.createTempDir(), fileName.txt);
但因为 API 已被弃用,他们还建议使用带有更多参数的 Nio:
Path createTempDirectory(String prefix, FileAttribute<?>... attrs)
所以如果你自己有方法就更好了:
File createTempFile(String fileName, String content) throws IOException {
String dir = System.getProperty("java.io.tmpdir");
File file = new File(dir + fileName);
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(content.getBytes(StandardCharsets.UTF_8));
}
return file;
}