home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Java / JavaSplit / FILEDATA.DAT / javasp~1 / bin / Split.class (.txt) < prev   
Encoding:
Java Class File  |  1998-07-24  |  3.2 KB  |  132 lines

  1. import java.awt.Frame;
  2. import java.awt.Label;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6.  
  7. class Split extends Thread {
  8.    private String path = "";
  9.    private int size;
  10.    private Label info;
  11.    private Frame parent;
  12.  
  13.    public Split(String var1, int var2, Label var3, Frame var4) {
  14.       this.path = var1;
  15.       this.size = Math.abs(var2) * 1024;
  16.       this.info = var3;
  17.       this.parent = var4;
  18.    }
  19.  
  20.    private void setMessage(String var1) {
  21.       this.info.setText(var1);
  22.    }
  23.  
  24.    public void run() {
  25.       try {
  26.          this.splitfile(this.path, this.size);
  27.       } catch (Exception var2) {
  28.          new Msg(this.parent, "ERROR", ((Throwable)var2).toString());
  29.       }
  30.    }
  31.  
  32.    void splitfile(String var1, int var2) {
  33.       Runtime var3 = Runtime.getRuntime();
  34.       Object var4 = null;
  35.       Object var5 = null;
  36.       long var6 = 0L;
  37.       long var8 = 0L;
  38.       long var10 = 0L;
  39.       int var13 = 0;
  40.       int var14 = 0;
  41.       int var15 = 0;
  42.       int var16 = 0;
  43.       File var17 = new File(var1);
  44.       if (!var17.exists()) {
  45.          new Msg(this.parent, "ERROR", "No such file:\n" + var1);
  46.       } else if (!var17.canRead()) {
  47.          new Msg(this.parent, "ERROR", "Cannot read file:\n" + var1);
  48.       } else {
  49.          var6 = var17.length();
  50.  
  51.          try {
  52.             var24 = new FileInputStream(var17);
  53.          } catch (Exception var21) {
  54.             new Msg(this.parent, "ERROR", "File not found:\n" + var1);
  55.             return;
  56.          }
  57.  
  58.          if (var6 < (long)var2) {
  59.             new Msg(this.parent, "INFO", "Splitting unnecessary.\nFile is less than\n" + var2 / 1024 + " Kbytes long");
  60.          } else if (var6 == (long)var2) {
  61.             new Msg(this.parent, "INFO", "Splitting unnecessary.\nFile is " + var2 / 1024 + " Kbytes long");
  62.          } else {
  63.             this.setMessage("0 %");
  64.  
  65.             while(var8 < var6) {
  66.                if (var6 - var8 < (long)var2) {
  67.                   var14 = (int)(var6 - var8);
  68.                } else {
  69.                   var14 = var2;
  70.                }
  71.  
  72.                var10 = 0L;
  73.  
  74.                try {
  75.                   FileOutputStream var23 = new FileOutputStream(var1 + "." + var16);
  76.  
  77.                   while(var10 < (long)var14) {
  78.                      var13 = (int)((double)var3.freeMemory() * 0.9);
  79.                      if (var13 <= 256) {
  80.                         new Msg(this.parent, "Warning", "There isn't enough memory to continue.\nTry quitting other running applications, if any.");
  81.                         this.setMessage("Out of Memory");
  82.                         return;
  83.                      }
  84.  
  85.                      byte[] var12;
  86.                      if ((long)var14 - var10 < (long)var13) {
  87.                         var12 = new byte[(int)((long)var14 - var10)];
  88.                      } else {
  89.                         var12 = new byte[var13];
  90.                      }
  91.  
  92.                      var15 = var24.read(var12);
  93.                      var8 += (long)var15;
  94.                      var10 += (long)var15;
  95.                      var23.write(var12);
  96.                      Object var27 = null;
  97.                      this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %");
  98.                   }
  99.  
  100.                   var23.close();
  101.                } catch (Exception var22) {
  102.                   new Msg(this.parent, "ERROR", ((Throwable)var22).getMessage());
  103.                   if (var24 instanceof FileInputStream) {
  104.                      try {
  105.                         var24.close();
  106.                         return;
  107.                      } catch (Exception var19) {
  108.                         return;
  109.                      }
  110.                   }
  111.  
  112.                   return;
  113.                }
  114.  
  115.                ++var16;
  116.                this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %");
  117.             }
  118.  
  119.             this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %, " + var8 + " bytes, " + var16 + " files.");
  120.             if (var24 instanceof FileInputStream) {
  121.                try {
  122.                   var24.close();
  123.                } catch (Exception var20) {
  124.                }
  125.             }
  126.  
  127.             new Msg(this.parent, "DONE", "Done... splitted to " + var16 + " files.\nTotal " + var8 + " bytes");
  128.          }
  129.       }
  130.    }
  131. }
  132.