Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVAEE Eclipse中的FileNotFoundException_Java_Eclipse_Jakarta Ee - Fatal编程技术网

JAVAEE Eclipse中的FileNotFoundException

JAVAEE Eclipse中的FileNotFoundException,java,eclipse,jakarta-ee,Java,Eclipse,Jakarta Ee,服务器:tomcat 我创建了一个Servlet来调用JAVA程序来处理CSV文件 代码new ToJSON().main(files)将csv文件处理为json protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String [] files = request.getParameter("files"

服务器:tomcat

我创建了一个Servlet来调用JAVA程序来处理CSV文件

代码new ToJSON().main(files)将csv文件处理为json

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String [] files = request.getParameter("files").split(",");
    System.out.println(String.join(",", files));
    new ToJSON().main(files);
    ////call the java program to convert CSV files to json then sent the file name or the contain back.
    response.getWriter().append("data.json");
}

SEVERE: Servlet.service() for servlet [charting.servlet.ChartingServlet] in context with path [/Charting] threw exception
java.io.FileNotFoundException: BankFileLine.csv (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at format.LoadCSVFile.iterable(LoadCSVFile.java:60)
at format.LoadCSVFile.getMaxLength(LoadCSVFile.java:44)
at format.LoadCSVFile.<init>(LoadCSVFile.java:26)
at toJSON.ToJSON.main(ToJSON.java:26)
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
String[]files=request.getParameter(“文件”).split(“,”);
System.out.println(String.join(“,”文件));
新建ToJSON().main(文件);
////调用java程序将CSV文件转换为json,然后将文件名或contain返回。
response.getWriter().append(“data.json”);
}
严重:路径为[/charting]的上下文中Servlet[charting.Servlet.ChartingServlet]的Servlet.service()引发异常
java.io.FileNotFoundException:BankFileLine.csv(无此类文件或目录)
位于java.io.FileInputStream.open0(本机方法)
在java.io.FileInputStream.open(FileInputStream.java:195)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于java.io.FileInputStream。(FileInputStream.java:93)
位于java.io.FileReader。(FileReader.java:58)
格式为.LoadCSVFile.iterable(LoadCSVFile.java:60)
格式为.LoadCSVFile.getMaxLength(LoadCSVFile.java:44)
格式为.LoadCSVFile。(LoadCSVFile.java:26)
位于toJSON.toJSON.main(toJSON.java:26)
但我一直得到filenotfoundexception。我试图将文件放入WebContent和src。他们都没有工作。我尝试添加路径:localhost:8080/ChartingServlet/filename,但仍然无法工作

这是目录


我的问题是我应该把文件放在哪里?

在服务器上运行时的当前目录不是您应该依赖的,您所显示的任何内容都没有考虑到这一点

1) 如果csv文件不提供给客户端,您实际上并不关心文件在哪里,您只关心读取正确的内容。对于这种情况,您可以将它们放在
src
文件夹下,然后使用servlet类中的。这与普通Java应用程序的工作方式相同,如果您想将web应用程序打包为
WAR
文件,则不会中断


2) 如果客户端应该能够读取原始的.csv文件,那么您将需要,然后使用传入相对于
WebContent
文件夹的路径来构建文件系统绝对路径,这样您就可以知道文件的绝对位置,然后可以正常读取。这种方法在将你的应用打包为
WAR
文件后往往无法存活。您可以尝试这种情况,但我没有第一手的经验,因此我不确定它是否有效。

给出文件的绝对路径。你不能依赖当前的工作目录。非常感谢,它工作了,我可以阅读文件并将文件内容发回。