我可以在Eclipse中找到由servlet创建的文本文件

时间:2014-09-25 06:47:51

标签: java eclipse servlets

这可能是一个愚蠢的问题,但我不得不问,因为我找不到合适的解决方案。

我是Eclipse新手。我在Eclipse中创建了一个Dynamic Web项目,在这里,我编写了一个简单的代码来创建一个文本文件,只指定文件名不是创建的路径,成功执行后,我在项目中找不到我的文本文件文件夹中。

如果在代码中指定了路径,我可以在指定的目录中找到文本文件,如果我没有指定路径,我的问题是我可以找到我的文本文件的地方吗?

我的代码是

try {
     FileWriter outFile = new FileWriter("user_details.txt", true);
     PrintWriter out1 = new PrintWriter(outFile);
     out1.append(request.getParameter("un"));
     out1.println();
     out1.append(request.getParameter("pw"));
     out1.close();
     outFile.close();
     System.out.println("file created");
} catch(Exception e) {
     System.out.println("error in writing a file"+e);
}

我用以下几行编辑了我的代码,

String path = new File("user_details.txt").getAbsolutePath(); 

System.out.println(path); 

我得到的路径在

之下

D:\Android\eclipse_JE\eclipse\user_details.txt

为什么我在eclipse文件夹中找到它?

然后, 如果这不是创建文本文件的正确方法,我如何在我的Web应用程序中创建文本文件?

2 个答案:

答案 0 :(得分:1)

该文件位于应用程序服务器的实际工作目录中。做一个

System.out.println(new File("").getAbsolutPath());

您将找到该位置。

然而,在这样的Web应用程序中编写文件并不是一个好主意,因为首先你永远不知道它在哪里,然后你永远不知道你是否在它上面写了特权。

您需要为应用程序指定一些 filesystem root ,方法是将其作为init-parameter传递,并将其用作您在文件系统上需要执行的操作的父级。将this answer检查为类似的Question

然后您可以像这样创建文件:

String fsroot = getServletContext().getInitParameter("fsroot")
File ud = new File(fsroot, "user_details.txt");
FileWriter outFile = new FileWriter(ud, true);

答案 1 :(得分:0)

您可以尝试使用getAbsolutePath()方法。

String newFile = new File("Demo.txt").getAbsolutePath();

它将显示文件的创建位置。