1

嘿伙计们,我正在尝试让我的代码运行一次;它将插入到 WebContent 目录中已创建的 .txt 文档中。我在 Apache Tomcat v7.0 中运行 - 在 Eclispe 中构建。

代码:

  public static void insertWinner(String winner) throws IOException{

        String filename= "Winner.txt";
        FileWriter fw = new FileWriter(filename,true); //the true will append the new data
        fw.write("Winner is" + winner);//appends the string to the file
        fw.close();

    }

这是在名为 BandIO 的 java 文件中完成的,servlet BandListServ.java 调用该文件将字符串值插入到上述代码中。

当我这样做时没有任何反应,也不知道为什么。

如果您需要任何其他信息,请告诉我,再次感谢!

编辑

我把它改成这个 -

public static void insertWinner(String winner) throws IOException{


        FileWriter out = new FileWriter("Winner.txt");
        out.write("Hello");
        out.close();
        out = new FileWriter("Winner.txt", true);
        out.write(", world!");
        out.close();

    }

编辑:

好的,所以我在 servlet 文件中尝试了这个,但没有雪茄..

             response.setContentType("text/html");


             String filename = "Winner.txt";

             ServletContext context = getServletContext();


             InputStream is = context.getResourceAsStream(filename);
             if (is != null) {
                 InputStreamReader isr = new InputStreamReader(is);
                 BufferedReader reader = new BufferedReader(isr);
                 PrintWriter writer = response.getWriter();
                 String text = "Winner is";


                 while ((text = reader.readLine()) != null) {
                     writer.println(text);
                 }
             }
4

1 回答 1

2

原则上对文件系统的访问是通过

File file = getServletContext().getRealPath("/Winner.txt");

此文件可能为空,即当 Web 应用程序部署为 .war(so zip 格式)时,并且 Web 服务器未配置为解压缩 war。

在您的情况下,文件可能存在并发问题,需要一些锁定。也许您应该使用数据库表。

同样在下一次部署时,文件可能会丢失。

于 2012-12-15T02:50:38.830 回答