我有真正的麻烦,每个'操作'生成文本文件以存储操作特定信息,无论我采取什么方法,我无法在Web服务器上创建文本文件,更不用说存储在其中的信息,第一个例子是我喜欢的理想情况下(每次操作创建和存储)

注意 - 我正在尝试在目前用于测试目的的servlet中执行此操作。帮助很多赞赏。

 try {
               FileWriter fstream = new FileWriter("out.txt");
                BufferedWriter out = new BufferedWriter(fstream);
                out.write("test");
                out.close();
            } catch (Exception ex) {
                 System.out.println(ex);
            }
.

不同的方法

 try {

            URL                url; 
            URLConnection      urlConn; 
            DataOutputStream   dos;
            DataInputStream dis;

            url = new URL("http://localhost:8080/" + request.getContextPath() + "/tmp/myfile.txt");
            System.out.println(url);
            urlConn = url.openConnection(); 
            urlConn.setDoInput(true); 
            urlConn.setDoOutput(true); 
            urlConn.setUseCaches(false); 
            urlConn.setRequestProperty ("Content-Type", "text/plain");

            dos = new DataOutputStream (urlConn.getOutputStream()); 
            dos.writeUTF("test");
            dos.flush(); 
            dos.close();

            //to test
            dis = new DataInputStream(urlConn.getInputStream()); 
            String s = dis.readLine(); 
            System.out.println(s);
            dis.close(); 

     } catch(Exception ex) {
         System.out.println(ex);
     }
.

有帮助吗?

解决方案

不确定为什么要这样做;已经有了强大的日志记录解决方案和数据库。

在第一种情况下,如果您没有得到例外,它几乎肯定会创建文件,您只是不知道它在哪里。使用.getRealPath使用绝对路径到已知的可访问位置,或者相对于应用程序本身的内容。

(注意到尝试写入应用程序相对路径,如果您部署战争,则无法工作。)

在第二个案例中,不确定为什么要思考它会起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top