写入Web日志(文本文件)Java EE

写入Web日志(文本文件)Java EE,java,jakarta-ee,text-files,filewriter,Java,Jakarta Ee,Text Files,Filewriter,我在为每个“操作”生成一个文本文件来存储操作特定的信息时遇到了真正的问题,无论我采取什么方法,我都无法在web服务器上创建一个文本文件,更不用说在其中存储信息了,第一个示例是理想情况下我想要的(每个操作创建和存储) 注意-为了测试目的,我正在尝试在servlet中执行此操作。非常感谢你的帮助 try { FileWriter fstream = new FileWriter("out.txt"); BufferedWriter ou

我在为每个“操作”生成一个文本文件来存储操作特定的信息时遇到了真正的问题,无论我采取什么方法,我都无法在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
与应用程序本身相关的路径

(注意,如果部署war,尝试写入应用程序相对路径将不起作用。)


在第二种情况下,不确定您为什么认为这会起作用。

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

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

(注意,如果部署war,尝试写入应用程序相对路径将不起作用。)


在第二种情况下,我不确定您为什么认为这会起作用。

您是否有将文件写入文件系统的权限?目前我正在Windows上进行本地开发,现在我将尝试CHMOD一些文件夹,谢谢!您是否有将文件写入文件系统的权限?我正在Windows上进行本地开发,现在我将尝试CHMOD一些文件夹,谢谢!我已使用.getRealPath管理生成/定位文件路径。我已经在使用一个数据库来记录数据,我只需要使用一个文本文件。毫无疑问,我在服务器上时会遇到权限问题,但在此之前,我必须这样做,谢谢@没有问题;很高兴你让它工作了。不过,对我来说还是有点奇怪。我已经使用.getRealPath生成/定位了文件路径。我已经在使用一个数据库来记录数据,我只需要使用一个文本文件。毫无疑问,我在服务器上时会遇到权限问题,但在此之前,我必须这样做,谢谢@没有问题;很高兴你让它工作了。但对我来说还是有点奇怪。