Frage

Ich habe echte Probleme, eine Textdatei pro 'Operation' zu generieren, um operationsspezifische Informationen zu speichern, egal welchen Ansatz ich wähle, ich kann keine Textdatei auf dem Webserver erstellen, geschweige denn Informationen darin speichern, das erste Beispiel ist idealerweise das, was ich möchte (pro Operation erstellen und speichern)

Hinweis - Ich versuche dies derzeit zu Testzwecken in einem Servlet zu tun.Hilfe sehr geschätzt.

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

Anderer Ansatz

 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);
     }
War es hilfreich?

Lösung

Ich bin mir nicht sicher, warum du das so machen willst;es gibt bereits robuste Protokollierungslösungen und Datenbanken.

Im ersten Fall wird mit ziemlicher Sicherheit eine Datei erstellt, wenn Sie keine Ausnahmen erhalten, Sie wissen nur nicht, wo sie sich befindet.Verwenden Sie entweder einen absoluten Pfad zu einem bekanntermaßen zugänglichen Speicherort oder einen relativen Pfad zur Anwendung selbst mit .getRealPath.

(Beachten Sie, dass der Versuch, in einen app-relativen Pfad zu schreiben, nicht funktioniert, wenn Sie einen Krieg bereitstellen.)

Im zweiten Fall sind Sie sich nicht sicher, warum Sie dachten, dass das funktionieren würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top