Java 如何将InputStream对象转换为文件对象?
我试图在一个从html表单调用的servlet中获取一个“文件”实例,在这个实例中,我可以在我的计算机上选择一个PDF文件。 我成功地将该文件作为“InputStream”获取,但我无法进一步将其转换为“file”对象 在做了很多不同的尝试之后,我仍然不知道我应该做些什么来让它工作。有什么想法吗 错误: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
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");