首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVAEE中的FilenotfoundExcption

JAVAEE中的FilenotfoundExcption
EN

Stack Overflow用户
提问于 2017-10-01 07:30:15
回答 1查看 29关注 0票数 0

服务器: tomcat。

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

新的ToJSON().main(文件)代码将处理csv文件到json。

代码语言:javascript
复制
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)

但我一直在弄文件库。我试图将这些文件放入WebContent和src中。他们都不起作用。我尝试添加路径:localhost:8080/ChartingServlet/filename,但仍然没有工作。

下面是目录以下是项目文件的目录

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-01 07:57:50

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

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

2)如果客户端应该能够读取原始的.csv,则需要从请求对象,然后使用ServletContext#getRealPath()构建文件系统绝对路径,传递相对于WebContent文件夹的路径,从而知道文件的绝对位置,然后可以正常读取文件。这种方法不适合将应用程序打包为WAR文件。您可以在这个场景中尝试ServletContext#getResourceAsStream(),但是我没有第一手的经验,所以我不确定它是否有效。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46510198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档