Announcement

Collapse
No announcement yet.

mal wieder ein Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mal wieder ein Problem

    Über eine FTP-Klasse über die Mehtode get(String b) möchte ich mir eine Datei auf meinen Rechner holen. Jedoch wird diese nur im Speicher als byte[] abgelegt. Wie kann ich den Inhalt jetzt in eine Datei kopieren und sie so benennen wie sie auf dem entfernten Coputer heisst?

    Grüße
    Torsten

  • #2
    Sorry, hatt ich mal etwas länger überlegt hätte ich das hier nicht posten müssen.

    FTPClient client = new FTPClient(server);

    FTPClient client = new FTPClient(server);
    client.login(user, password);
    client.chdir(sourcePath);
    byte[] myFile = client.get(file);
    out.write(myFile);
    out.close();

    client.quit();

    Reicht das so aus oder müßte ich hier noch falls die Datei mal größer wird eine whlie-Schleife anlegen?

    Grüße
    Torste

    Comment


    • #3
      Wenn die Dateien sehr groß werden, gibt es in der Tat ein Problem. Mit einer
      while-Schleife kann man nichts verkehrt machen ;-) Wie die Schleife aber
      genau aussieht hängt von der FTP Bibliothek ab die Du benutzt. Nimmst Du
      beispielsweise jakarta commons FTPClient so braucht man keine Schleife:

      ---

      OutputStream output = new FileOutputStream(local);
      ftp.retrieveFile(remote, output);
      output.close();

      ---

      Nimmst Du hingegen eine URL-Connection so sähe der Code etwa so aus:
      ---
      InputStream in = connection.getInputStream();
      OutputStream out = new FileOutputStream(file);

      int n;
      byte[] buf = new byte[4096];
      while( (n = in.read(buf)) > 0)
      {
      out.write(buf, 0, n);
      }

      in.close();
      out.close();

      ---

      Comment

      Working...
      X