【发布时间】:2018-11-25 18:23:18
【问题描述】:
我是 servlet 编程新手,我正在尝试使用以下 java 方法创建和写入文件-
public void file() throws FileNotFoundException, UnsupportedEncodingException {
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();
System.out.println("file created");
}
我想像这样从 servlet 调用它
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
TryMethod tryMethod = new TryMethod();
tryMethod.file();
}
谁能建议为什么它没有从 servlet 中执行? 当从 main 方法调用时,会调用此方法。
【问题讨论】:
-
使用doGet方法
-
如果你想在你的 servlet 中有一个简单的
System.out.println语句,它会被执行吗?您的 servlet 是否 100% 正常工作? -
@SM 你确定文件没有创建吗?我怀疑它正在创建,但您正在查看不同的文件夹。正如您现在正在创建的那样,您正在使用相对路径创建它。当您将代码作为 Web 应用程序(Servlet 容器)运行时,您的“当前文件夹”可能与 IDE Main 运行的当前文件夹不同。
-
@SM 使用固定路径(例如将文件放在桌面上)。
-
@SM 很高兴它工作。我相信您会发现“某处”(您的网络应用程序的“当前目录”)创建的其他文件。要找出它们的创建位置,只需 println(从您的 servlet)当前路径:
Paths.get("").currentRelativePath.toAbsolutePath().toString()- 您会在那里找到它们。