### penggabungan PATH
###AGINTAGENIUSA
public static void main (String args[] ) {
String path="";
String name="";
String ext;
if (Array.getLength(args) <1) System.exit (0);
String fn=new String (args [0]);
String [] fpath=fn.split ("\\x5c");
int fpn=Array.getLength(fpath);
String fname=fpath[fpn-1];
for (int i=0; i<fpn-1;i++) {path=path.concat (fpath[i]); path=path.concat ("\\");}
String [] fpart=fname.split("\\x2e");
int fnn=Array.getLength(fpart);
ext=fpart [fnn-1];
for (int = i=0;i<fnn-1;i++) { name=name.concat (fpart [i]);name=name.concat (".") }
System.out.println(path);
System.out.println(name);
System.out.println(ext);
try {
FileInputStream fb=new FileInputStream (fn);
FileOutputStream fo=new FileOutputStream (name.concat("huf"));
fo.write (ext.length());
fo.write(ext.getBytes());
doCompress(fb,fo);
fb.close();
fo.flush();
fo.close();
} catch (Exception e) {
system.out.println("File "+fn+" can't be found !");
}
System.exit(0);
return;
}
####________________________ GABUNG ____________________________________#####
GABUNG DENGAN FILE SEBELUMNYA
ReplyDeleteDATA SIZE untuk melihat jumlah data yang ada pada file data yang akan dikompresi ( sebagai error code)
ReplyDeletesemua dilihat di Header data, sekecil kecilnya file kompres tidak lebih kecil daripada header.
Header sebagai overhead.
untuk dikompress pastikan datanya lebih besar dr header.
setelah header selesai maka dilakukan penulisan data.
kita tidak dapat menuliskan satu data sekaligus (tetapi dilakukan kompromi dalam bentuk TREE)
pada " buff=buff.concat(hcode[(integer) srcData.get(0)])"
A= 4 -->0
B= 2 --> 1`0
C= 1 --> 1`1
Pembacaan data pada srcData sebagai penyesuaian jumlah data agar lebih besar dari Header (harus lebih besar dari "8" byte. nilai buff dijadikan byte contohnya :
buff="0100100011" --> bernilai 72
setelah itu dilihat apakah masih ada sisa ?
jika kurang pada bagian belakang (contoh concat "0")
noted :
ReplyDeleteFT =3bak[HUffmanCode]7|72|72
sebelum 72 sebagai header setelah 7| sebagai data.