Peter: Dateien zipkomprimieren

Guten morgen!

habe ein problem mit dem erstellen von zip-dateien mit java. habe auch schon fertigen code, der bei mir aber (leider) nicht funktioniert... :

public class Test
 {
   public static void main(String[] args)
   {
    String dst="C:\bla.zip";
    String eins="C:\eins.txt";
    String zwei="C:\zwei.txt";
    String[] array=new String[2];
    array[0]=eins;
    array[1]=zwei;

try {
       byte[] buf = new byte[4096];
       ZipOutputStream out = new ZipOutputStream(
                             new FileOutputStream(dst));
       for (int i = 0; i < array.length; ++i) {
         String fname = array[i];
         System.out.println("adding " + fname);
         FileInputStream in = new FileInputStream(fname);
         out.putNextEntry(new ZipEntry(fname));
         int len;
         while ((len = in.read(buf)) > 0) {
           out.write(buf, 0, len);
         }
         out.closeEntry();
         in.close();
       }
       out.finish();
       out.close();
        } catch (IOException e) {
       System.err.println(e.toString());
    }
   }
}

die zip-datei "bla.zip" wird zwar erstellt, hat aber eins.txt und zwei.txt nicht im archiev... und wenn ich "alle extrahieren" mach, passiert gar nichts :(

über kreative hilfe wäre ich sehr erfreut!

mfg, Peter

  1. moin Peter :)

    über kreative hilfe wäre ich sehr erfreut!

    dann gib mal ein bisschen debugging-info ;)

    zum bEispiel wäre es interessant zu wissen ob die schleife funktioniert. Wird System.out.println("adding " + fname); ausgegeben? wenn ja - was?

    Interessant wäre auch, was in der Schleife
    [code lang=java]
    while ((len = in.read(buf)) > 0) {
               out.write(buf, 0, len);
    }
    [code]
    wirklich passiert. Bau doch dort auch ein bisschen debugging ein und poste deine Erkenntnisse hier.

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Hallo Lina

      tja wenn des so einfach wäre :) bin nur dummer praktikant und hab noch nicht wirklich viel mit java zu tun ghabt... kenn mich leider mit debugging kaum aus, bzw weiß nich wirklich wie des bei eclipse funktioniert...
      auf jeden fall läuft des programm ohne probleme durch.
      bei System.out.println("adding " + fname); kommt:

      adding C:\eins.txt
      adding C:\zwei.txt

      kann natürlich sein, dass des ganze an meinem "laptop" liegt. hat bei manchen programmen gesponnen und auf meinem pc zuhause hat des programm ohne weiteres funktioniert.
      hättest lust des ganze mal bei dir auszuprobieren?
      bin mir eigendlich ziemlich sicher dass es funktionieren muss.

      grüße aus münchen, Peter

      1. moin Peter :)

        tja wenn des so einfach wäre :) bin nur dummer praktikant und hab noch nicht wirklich viel mit java zu tun ghabt... kenn mich leider mit debugging kaum aus, bzw weiß nich wirklich wie des bei eclipse funktioniert...

        Dann solltest du dich schnellstens damit beschäftigen ;) Debugging ist so ziemlich das wichtigste, um fremde Programme zum rennen zu bringen *g*

        auf jeden fall läuft des programm ohne probleme durch.
        bei System.out.println("adding " + fname); kommt:

        adding C:\eins.txt
        adding C:\zwei.txt

        Das ist schonmal gut. Existieren diese beiden files denn auf deinem laptop unter diesem Namen auch?

        kann natürlich sein, dass des ganze an meinem "laptop" liegt. hat bei manchen programmen gesponnen und auf meinem pc zuhause hat des programm ohne weiteres funktioniert.

        hmmm? kann ich mir ja fast nicht vorstellen.

        hättest lust des ganze mal bei dir auszuprobieren?

        kann ich machen - in der Mittagspause...

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
        1. hallo lina

          schon mal danke für deine mühe!
          glaub des mit dem debugging ist kaum noch rentabel. des projekt ist bald beendet und dann werd ich wohl nicht mehr sehr oft mit java zu tun haben... :)

          also die zip-file schau ich mir im windows an. hmmm dann werd ich wohl was andres zum testen benutzen müssen :)

          die dateien sind auch vorhanden (blöder praktikant aber kein sau-blöder :) )
          also falls du deine mittagspause für mich opfern willst, wäre schon fast zuviel verlangt... aber wenn du willst :)

          mfg,peter

          1. moin Peter :)

            also die zip-file schau ich mir im windows an. hmmm dann werd ich wohl was andres zum testen benutzen müssen :)

            mach das mal und sag mir dann bescheid. Also ich  hab das ma kurz getestet und mit 7zip kann ichs mir anschaun - mit windows nicht.

            liebe Grüße aus Berlin
            lina-

            --
            Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
            1. oje scheiß windows :)

              jetz klappts bei mir auch...
              nochmal vielen dank für deine hilfe!

              wünsch dir noch nen schönen tag :)

              mfg,Peter

              1. moin Peter :)

                oje scheiß windows :)

                ack ;)

                jetz klappts bei mir auch...
                nochmal vielen dank für deine hilfe!

                Gern geschehen - Mittagspause gerettet ;)

                wünsch dir noch nen schönen tag :)

                Wünsch ich dir auch!

                liebe Grüße aus Berlin
                lina-

                --
                Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
      2. moin Peter :)

        hättest lust des ganze mal bei dir auszuprobieren?

        bevor ich das tue noch eine wichtige Frage: mit was schaust du dir das entstandene Zip-File an?
        Wenn du das Windows-Compressed-Folder-Dingens benutzt wirst du tatsächlich keine files sehen - obwohl sie da sind ;) Jedes andere Tool kann damit wunderbar umgehen.

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)