我无法在GWT中读取文本文件

时间:2015-08-18 11:19:33

标签: java gwt

我正在与GWT和Netbeans开发一个项目。我有一个RPC。我在服务器包“org.myname.server”中放了一个文本文件,我想用属于GWTServiceImpl类的服务器端方法读取它。文本文件和文件GWTServiceImpl.java位于同一个包中。代码如下:

        String text="";
        try 
        {
            BufferedReader br = new BufferedReader(new FileReader("file.txt"));
            String line;
            while((line = br.readLine()) != null)
            {
                text=text+line;
                System.out.println("here is the line: "+line);
            }
            br.close();
        }
        catch (Exception e) { }
        return text;

它说它无法访问该文件。我没有包含整个路径,因为该文件位于该方法的同一文件夹中。那为什么不起作用?

2 个答案:

答案 0 :(得分:2)

文件路径不是与“类”相关,而是与“当前工作目录”相关,因此它取决于服务器的启动方式,并且可能在开发和生产方面有所不同。

如果文件在您的网络应用中打包为资源,请使用相应的加载方式:如果它位于WEB-INF/classesWEB-INF/lib中的JAR中,则使用getClass().getResourceAsStream("file.txt") ;否则使用ServletRequest#getResourceAsStream()

答案 1 :(得分:1)

是的,托马斯是对的。因此,为了创建缓冲读取器,代码如下:

InputStream is= getClass().getResourceAsStream(filepath);
BufferedReader br = new BufferedReader(new InputStreamReader(is));