Java 如何将InputStream对象转换为文件对象?

Java 如何将InputStream对象转换为文件对象?,java,html,file,servlets,jakarta-ee,Java,Html,File,Servlets,Jakarta Ee,我试图在一个从html表单调用的servlet中获取一个“文件”实例,在这个实例中,我可以在我的计算机上选择一个PDF文件。 我成功地将该文件作为“InputStream”获取,但我无法进一步将其转换为“file”对象 在做了很多不同的尝试之后,我仍然不知道我应该做些什么来让它工作。有什么想法吗 错误: java.io.FileNotFoundException: test.pdf (Read-only file system) at java.io.FileOutputStream.o

我试图在一个从html表单调用的servlet中获取一个“文件”实例,在这个实例中,我可以在我的计算机上选择一个PDF文件。 我成功地将该文件作为“InputStream”获取,但我无法进一步将其转换为“file”对象

在做了很多不同的尝试之后,我仍然不知道我应该做些什么来让它工作。有什么想法吗

错误:

java.io.FileNotFoundException: test.pdf (Read-only file system)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:360)
    at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:319)
    at org.apache.commons.io.FileUtils.copyToFile(FileUtils.java:1552)
    at org.apache.commons.io.FileUtils.copyInputStreamToFile(FileUtils.java:1528)

例外情况告诉您,问题不在于“创建文件”。问题是磁盘/分区受写保护

您应该在可写的文件系统上创建该文件。尝试指定一个绝对路径,例如

File file = new File("/tmp/" + filename.trim() + ".pdf");
//or
file = new File("/home/userhome/" + filename.trim() + ".pdf");
该文件应仅在可写文件系统上创建

File file = new File("/tmp/" + filename.trim() + ".pdf");
//or
file = new File("/home/userhome/" + filename.trim() + ".pdf");