我写了一个Java程序,我正在其中创建一个文件。
BufferedWriter writer =
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("myfile.txt"))
它正在当前文件夹(我的项目文件夹)中创建文件。直到这里,一切都很完美。现在我已经设计了一个servlet并调用了这个类。该文件现在正在 tomcat bin 文件夹中创建。我是否需要对 tomcat 中的classpath
、server.xml
或context.xml
进行任何更改?
原因:
您的程序正在"当前工作目录"中创建一个新文件。
由于它是在Tomcat内部运行的servlet,因此"当前目录"恰好是Tomcat的"bin"目录。
建议:
如果可能,请使用完全限定的路径 (
"/tmp/myfile.text"
)您还可以相对于
getServletContext()
写入文件:
如何通过Java EE Web应用程序将文件存储在服务器(Web容器)上?
- 您可以使用相对路径,并在属性文件 (
WEB-INFmyprog.properties
) 或 JVM 参数 (-D filepath=/my/file/path
) 中参数化该路径。