Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Speichern im Netz

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825

    Speichern im Netz

    Hallo Leute,

    doch, es geht, aber nur bei selbstgeschriebenem Buffers.

    Problem: ein Bild soll auf einem Netzlaufwerk gespeichert werden.

    Ansatz:

    Code:
    public void save_image()
      {
        try
        { File outfil = new File(out); // out ist global
          ImageIO.write(buffima,"png",outfil);
        }
        catch (IOException e) { System.out.println("Error while saving "+out); }
      }
    out ist der Filename komplett mit Pfad
    buffima ist ein (ziemlich fettes) Bild, was erzeugt wurde.

    Das funktioniert zwar lokal, aber nicht im Netz!
    Schreibberechtigung ist gegeben (die zugehörigen Texte, vom selben Package generiert, lassen sich abspeichern)
    Es findet keine Exception statt, es gibt auch sonst keine Fehlermeldung, aber die Datei ist anschließend nicht auf dem Laufwerk.

    Das Ganze geht nur daneben, wenn das Programm aus dem jar gestartet wird. Aus der Netzbohnen-Umgebung ist die Welt in Ordnung und das Bild im Netz!

    Wie komme ich da weiter?

    Gruß,
    Ulrike
    Geändert von BlueJay (05-02-2011 um 17:57 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  2. #2
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Erstmal fehlt das Schließen der Datei, evtl. liegt es ja daran?
    Code:
    outfil.flush();
    outfil.close();

  3. #3
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Diese beiden Methoden sind bis dato der Klasse File unbekannt.
    Und in der ImageIO sieht es auch düster aus.

    Auch in den Oracle-Tutorien zum Bilderladen/speichern steht nichts davon.
    Geändert von BlueJay (05-02-2011 um 21:35 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  4. #4
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Ah, shit, lang nix mehr mit Dateien gemacht... Streams kann man flushen und schließen...

    Vielleicht in einen FileOutputStream schreiben und den dann schreiben lassen?
    Sähe dann z.B. so aus:
    Code:
    File outfil = new File(out);
    if (!outfil.exists())
      if(!outfil.createNewFile())
        System.err.println("Couldn't create file!");
    if (outfil.canWrite())
      System.err.println("Cannot write file!");
    else
    {
      System.err.println("Writing to file...");
      FileOutputStream fos = new FileOutputStream(outfil);
      ImageIO.write(buffima,"png",fos);
      fos.flush();
      fos.close();
      System.err.println("Finished.");
    }

  5. #5
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Diese Elemente scheinen sich alle zu vertragen, zumindest lokal. Geschwindigkeitseinbußen scheint es auch nicht zu geben (12MB-Bild).

    Und er schreibt vom jar aus ins Netz.

    Vielen Dank! Also, ohne Stream geht's wohl nicht in Richtung Server.
    Eigentlich ganz einfach, wenn man's weiss!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •