java - 无法在 Java 中创建临时文件

标签 java file

我有一个 Java 方法,它接受字节数组和字符串值作为参数并返回一个 File 对象。这是代码

public File createTempFile(byte[] byteArray, String fileName) throws IOException {
    String prefix = FilenameUtils.getBaseName(fileName);
    String suffix = getMimeType(byteArray);
    File tempFile = File.createTempFile(prefix, suffix, null);
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(tempFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    fos.write(byteArray);
    fos.close();
    return tempFile;
}

当我尝试像这样运行它时

File myFile = tiedostoService.createTempFile(tiedosto.getContent(), attachment.getFileName());

我收到这样的 IOException

java.io.IOException: Unable to create temporary file, C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image\png
at java.io.File$TempDirectory.generateFile(File.java:1921)
at java.io.File.createTempFile(File.java:2010)

来自堆栈跟踪。可以看出它正在尝试创建一个类似 C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image\png 的文件 而不是C:\Users\ROSHAN~1\AppData\Local\Temp\kuva1068864619970584773image.png

我该如何解决这个问题?我真的很感激任何形式的帮助。

最佳答案

'image/png' 是一种 Mime 类型。查看 java 中的所有 MimeType here

编写一个将 mimetype 转换为文件扩展名的实用程序。希望这会有所帮助。

关于java - 无法在 Java 中创建临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535404/

相关文章:

java - 如何配置 Jackson 将一种类型的所有字段转换为另一种类型?

java - 服务器 500 错误是安全问题吗?

performance - 与 C 相比,Rust 文件 I/O 非常慢。有什么问题吗?

c - 为什么我在第二次搜索文件时收到段错误错误?

javascript - 从 Chrome 打包应用程序保存文件

c - 文件描述符(在 C 中打开的 fd)是否与其进程 ID 相同?

java - 防止 Tomcat 覆盖 Controller 建议返回的错误响应

java - SpringJUnit4ClassRunner - 静态访问EntityManager(Factory)

java - Gradle:如何编译使用 com.sun.xml.internal.bind.* 的类?

android - .apk 的大小随着目标设备的增加而增加(LDPI、MDPI、HDPI、X-Large Screens)