我正在运行 Netbeans 7.1.2,我正在尝试访问 servlet 中的一些文本文件:
package com.optimizations.cutting;
@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"})
public class Servlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("in servlet "+System.currentTimeMillis());
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
DataManager dm = new DataManager();
SheetInfo si = dm.loadSheetInfoCSV("sheetInfo.csv");
ArrayList<Piece> pieces = dm.loadPiecesCSV("res/pieces4.csv");
....
我已将sheetInfo.csv
和pieces4.csv
文件放置在我能想到的任何地方,并尝试在前面加上反斜杠(/sheetInfo.csv
或/res/pieces4.csv
)来访问它们
当我说“我能想到的所有地方”时,我的意思是:当前目录(源包),旁边Servlet.java
以及我创建的所有其他文件(包括DataManager.java
使用它的文件)。我也在"Add folder"
- Properties window
> Sources
->中做了Package Folder
。(添加了 2 个文件夹,只是为了确保)。所以我亲爱的文件同时在 3 个地方:
src/java/com/optimizations/cutting
旁边Servlet.java
和DataManager.java
src/java/res
src/resources
但我还是会得到SEVERE: java.io.FileNotFoundException: resources/pieces4.csv (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:97) at java.io.FileReader.<init>(FileReader.java:58) at com.optimizations.cutting.DataManager.loadPiecesCSV(DataManager.java:98)`
我还重新启动了服务器(Glassfish 3.1.2)
(也许这看起来很傻,但我还需要知道我应该在哪里以及如何放置我的文件,以便可以从客户端和服务器访问它们 - 我的 servlet 将创建一些图像(.jpg)并存储它们(在哪里?)和将文件名发送回.jsp,然后将它们显示在颜色框中)
提前致谢。
编辑
在 DataManager.java 中添加了更多错误行和调用:
public SheetInfo loadSheetInfoCSV(String filename){
....
br = new BufferedReader( new FileReader(filename));
String strLine = "";
//read comma separated file first line
if ((strLine = br.readLine()) != null)
....