Compression program in java

hello all,
any idea how to write a file compression program in java.
any help would be appreciated.
thanx

The same way you would write a compression program in any other language.
Open a stream for the file to be compressed
Open a stream for the compressed file, add a filter-stream (according to your choice of algorithm) to the stream for the compressed file.
Read from one stream, write to the other.
For uncompressing, reverse the above. :)
With java you have some small addenums that are useful, like the java.util.zip classes if it is basic zip-functionality that you want.
Once all this is done, as sugar on the top, fix a nice gui involving JTable, JTree and other eminent swing-components of your choice.
A fair bit of warning, if you want to use the JFileChooser for your logical file-view inside a compressed file, you are in for a ride. You will have to make your own FileView and File object. The java.io.File object is badly designed and it will be a long hassle to make it work, but it can be done.
Yours sincerely
Peter Norell

Similar Messages

  • File Compression program in java

    hello all,
    any idea how to write a file compression program in java.
    any help would be appreciated.
    thanx

    import java.io.*;
    import java.util.zip.*;
    import java.io.File;
    import java.io.FileInputStream;
    import java.util.zip.CRC32;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    import java.util.Date;
    import java.util.Vector ;
    public class FileZip
         //Creating Constructor to pass the vector
         Vector v;
         public FileZip(Vector v, JavaUpload applet){
              this.v = v;
         //Creating Constructor to pass one file
         public FileZip(File file){
              v.addElement(file);
         //default constructor
         public FileZip(){
         public void addFile(File file){
              v.addElement(file);     
         public void removeFile(File file){
              v.removeElement(file);
         ByteArrayOutputStream out;
         //This method helps to zip the files
         public ByteArrayOutputStream doJob(){
                   try {
                   out = new ByteArrayOutputStream();
                   ZipOutputStream zout = new ZipOutputStream(out);
                   zout.setMethod(ZipOutputStream.DEFLATED);
                        for (int i=0; i < v.size(); i++){
                        File file = new File (((File)(v.elementAt(i))).getPath());     
                   byte [] rgb = new byte [1000];
                   int n;
                   FileInputStream fis;
              //Calculate the CRC-32 value.
                   CRC32 crc32 = new CRC32();
                   fis = new FileInputStream(file);
                   while ((n = fis.read(rgb))>-1){
                   crc32.update(rgb, 0, n);
                   fis.close();
              //create a zip entry
                   ZipEntry zipentry = new ZipEntry(file.getName());
                   zipentry.setSize(file.length());
                   zipentry.setTime(file.lastModified());
                   zipentry.setCrc(crc32.getValue());
              //Add the zip entry and associated data
                   zout.putNextEntry(zipentry);
                   fis = new FileInputStream(file);
                   while ((n= fis.read(rgb))>-1){
                   zout.write(rgb,0,n);
                   fis.close();
                   zout.closeEntry();
                   zout.close();
              }catch(ZipException ze){}
              catch(IOException ioe){}     
              return out;

  • When i click on the Firefox icon I get an error message, C:\Program Files\Java\jre6\lib\deploy\jqs\ff\..\..\..\..\bin\jqsnotify\.exe cannot be found. What is it? and how do i fix it? in English

    When i click on the icon to open Firefox an error message box appears with the following message, C:\Program Files\Java\jre6\lib\deploy\jqs\ff\..\..\..\..\bin\jqsnotify\.exe cannot be found. It then advises me to use the Search function, but the search function says it is unavailable.
    What is it? and how do I fix it? in English

    See:
    http://www.java.com/en/download/help/quickstarter.xml - What is Java Quick Starter (JQS)? What is the benefit of running JQS? - 6.0

  • How to execute external program in java?

    My question is how to execute an external program in java.
    I need to call a unix command in java.
    Thanks.

    it depends on what you are trying to do. Following are the two methods
    1. Runtime.exec() : this method allows you just to call an external program as a seperate process
    2. JNI (Native Interface) :- As of right now only C and C++ are supported by this method. This method allows you to directly call the C/C++ methods from JAVA

  • How Can I execute a java program using java code?

    {color:#000000}Hello,
    i am in great trouble someone please help me. i want to execute java program through java code i have compiled the java class using Compiler API now i want to execute this Class file through java code please help me, thanks in advance
    {color}

    Thanks Manko.
    i think my question was not clear enough.. actually i want to run this class using some java code . like any IDE would do i am making a text editor for java, as my term project i have been able to complie the code usign compiler api and it genertaes the class file but now i want to run this class file "THROUGH JAVA CODE" instead of using Java command. I want to achive it programatically. do you have any idea about it.. thanks in advance

  • How to create a  schedule program in java

    Hello Friends ,
    Can any one provide me with an example how to create a schedule program using java.util.timer etc . I am in need of a program which should run as a schedule job that searches for a file in a directory and read the latest files from that directory in every minute of time as a schedule job .
    Thanks
    mahesh

    I don't feel like writing my own example, but google will be happy to provide you with an example.

  • New "Windows Programming Using Java" Website

    Our newly created "Windows Programming Using Java" website (http://fivedots.coe.psu.ac.th/~ad/winJava/) is for programmers who want to extend Java's capabilities on Windows XP and/or Vista, but aren't sure where to start. One of the drawbacks of Java's portability is that many Java programmers have a rather sketchy knowledge of Windows-specific programming.
    We plan to explain how Java applications can utilize Windows application software, OS features, and hardware beyond the reach of Java's standard libraries. A variety of Java/Windows programming techniques will be explained, including:
    * Java's employment of the Win32 API via C, JNI, and J/Invoke.
    * Java's utilization of Window's Command Line Interface (CLI) and batch files, accessed through Java's Runtime, ProcessBuilder, and Process classes.
    * Java and Windows object-based scripting, centered around the use of VBScript, Windows Script Host (WSH), and Windows Management Instrumentation (WMI).
    * Java interoperability with COM, including hosting of ActiveX controls in Swing containers using jacoZoom.
    This website is a work in progress, with four chapters available for download at the moment. We'll be adding more regularly, and would love feedback on what we're doing.
    Thanks,
    Gayathri Singh and Andrew Davison
    [email protected] and [email protected]
    Edited by: AndrewDavison on Jun 20, 2008 1:36 AM

    Hi, I am looking the similar kind of requirement that you had done.. Do you have any more details on the code that is working for you . All i need is if the user logs in successfully in windows, the the app should be accessible. Please let me know if you have the code with you on this problem.
    Thanks in advance
    "what i meant is the we b applications running in my system, when i access the application iam able to to login automatically with windows authentication and now in case of other users following process happened:"

  • Asynchronous socket programming in Java?

    I am a C++ programmer, I just wonder how do I do asynchronous programming in Java?
    In VC++, you can hook an event handler to the socket and the system will fire an event whenever there is data coming in to the socket. The event handler can then spawn a thread and handle the network message.
    In Unix, you can use the select() function. This function will return whenever the indicated socket fires events. If nothing happens within the timeout period, the function simply returns.
    What about in Java? I don't see any methods that allows you to hook an event handler to it. Is there anything like select() function in Unix?
    Thanks so much.

    There is something very much like C's select: selectors. I don't immediately know where to read more about them but google for things like "java selector example", "java nio tutorial", etc (NIO = new I/O, the library where selectors live.)
    Another way to do async sockets in Java is by threading. That is the traditional way before New I/O. It's still a perfectly good and easy way, thanks to Java's easy threading. Downside is that it scales to only maybe 100-200 simultaneous connections per server (will depend on your operating system). For thread-based sockets check Sun's Java socket tutorial (first item when you google "java socket tutorial").

  • How Hard is it to program in Java.Swing

    Hi
    I wanted to program using java.swing component but i don't have any idea where i should start.
    I have been programming in java using java.Awt
    and i can do simple array programing.
    So how hard is it, and Where should i start learning java.swing. Ps I don't know anything about Swing, I don't even know what it is.
    Thanks you

    Hi
    As the previous guy said it is quite easy, and that link should teach you the basics. What I want to remind you of is that Swing uses up more memory when run. But it also have a few nicer extra goodies that make coding a little bit easier. Have fun with it.
    Here are a few more sites
    <http://manning.spindoczine.com/sbe/>
    <http://java.sun.com/docs/books/tutorial/uiswing/>
    Ciao

  • Can i create an exetutable (.exe) program with java???????

    I would like to learn how i can create an exetutable (.exe) program with java.
    Is there any additional package which i should download or buy it?
    Also i would like to write files into CD's direct from my application.
    Is there any library which i must download or buy?
    Thanks!

    check out the free open source GNU gcj native compiler for Java to see if it will do what you want.
    http://gcc.gnu.org/java/
    for writing data files you could use java.io.BufferedWriter. For sound files, look in the javax.sound package

  • C:\Program Files\Java\jre7\bin

    I have java installed on my sytem.but when i try to run sql developer it says j2se sdk not found in the path C:\Program Files\Java\jre7\bin
    C:\Windows\system32>java -version
    java version "1.7.0"
    Java(TM) SE Runtime Environment (build 1.7.0-b147)
    Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
    (code}
    how should i get the path of j2se sdk                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    >
    java version "1.7.0"
    >
    Don't use Java 1.7 with sql developer. There have been many problem reports (search the forum) and it is recommended that you use no later than a 1.6 Java version.

  • Error: could not open `C:\Program Files\Java\j2re1.4.0_01\lib\i386\jvm.cfg'

    I am geting this error when I enter the "java" command:
    "Error: could not open `C:\Program Files\Java\j2re1.4.0_01\lib\i386\jvm.cfg'"
    I have configured the PATH variable (Windows 2000) and "javac" works. I cannot, however, get my programs to run because of the error every time I type "java". Also, I did not install my JDK / SDK to the directory in which the computer is looking for the "java" cammand (ie. it is not in 'Program Files'...). If anyone can help, it would be greatly appreciated. Thank you.

    Try using the -cp switch on the command line. For example:java -cp . MyProgramIf this corrects the problem, you need to set the classpath variable
    as well as the path.
    Mark

  • C:\Documents and Settings\User "c:/Program Files/Java/jdk1.5.0_14\bin\java.

    I have a class "Stimulus.java" in which another jar's class has been used. When I created jar and executed I got below error. I used "-classpath" to set dependancy jar file. Any clues are appreciated.
    import modulus.Modulus;
    public class Stimulus{
        public static void main(String[] args) {
                Model.main(args);
    C:\Documents and Settings\User>"c:/Program Files/Java/jdk1.5.0_14\bin\java.exe" -classpath "D:\User\mypgms\test\bin\Modulus.jar;" -jar D:\User\mypgms\test\bin\Stimulus.jar c:\test.txt
    Exception in thread "main" java.lang.NoClassDefFoundError: modulus/Modulus
            at Stimulus.main(Stimulus.java:4)

    You can't mix classpath values with the -jar option. Using the -jar option causes Java to use only the Class-Path: information in the jar's manifest file, while ignoring all external classpath information. Review this for details:
    http://java.sun.com/docs/books/tutorial/deployment/jar/run.html

  • How to compile and run package programs in Java

    Hi,
    I want to know how to compile and run the package programs in Java using -d. instead of creating the package folder manually.
    eg:
    package Test;
    class test1
    public void disp()
    //Any code;
    I want to compile this without creating the folder ' Test ' manually. that is if we use -d with javac the Test folder will be created automatically. I need the format of -d
    could anyone please help me.
    Thanks in Advance ,
    Ambika

    My program Test.java in F:\Tomcat5\webapps\Ambika\WEB-INF\Classes. I compiled in the format below. I got like this. What should I do for this? But yesterday I compiled like this only, It compiled and the folder com\cert\Test.class is created. Today again I compiled the pgm after deleting the already created folder 'com\cert', I got the error like this.
    I've given my pgm and the thing I've got when I compiled it.
    Test.java
    package com.cert;
    public class Test
         public void display()
              System.out.println("Hai");
    F:\Tomcat5\webapps\Ambika\WEB-INF\Classes>javac -d F:\Tomcat5\webapps\Ambika\WEB-INF\Classes\Test.java
    javac: no source files
    Usage: javac <options> <source files>
    where possible options include:
    -g Generate all debugging info
    -g:none Generate no debugging info
    -g:{lines,vars,source} Generate only some debugging info
    -nowarn Generate no warnings
    -verbose Output messages about what the compiler is doing
    -deprecation Output source locations where deprecated APIs are u
    sed
    -classpath <path> Specify where to find user class files
    -cp <path> Specify where to find user class files
    -sourcepath <path> Specify where to find input source files
    -bootclasspath <path> Override location of bootstrap class files
    -extdirs <dirs> Override location of installed extensions
    -endorseddirs <dirs> Override location of endorsed standards path
    -d <directory> Specify where to place generated class files
    -encoding <encoding> Specify character encoding used by source files
    -source <release> Provide source compatibility with specified release
    -target <release> Generate class files for specific VM version
    -version Version information
    -help Print a synopsis of standard options
    -X Print a synopsis of nonstandard options
    -J<flag> Pass <flag> directly to the runtime system
    F:\Tomcat5\webapps\Ambika\WEB-INF\Classes>
    Plz help me.
    thanks in advance
    Ambika

  • Closing a running windows XP program from java

    Hello,
    Im currently making a program in java under sdk 1.4.0_01 and i want to be able to close a program which is already running in windows(Emule).
    Is this possible?
    I know how to run it using: Process proc = Runtime.getRuntime().exec ("mulePath");
    ...but i dont know how to close it unless ive already run it from java.
    Any help appreciated!
    Craig

    Search the web for the NT Toolkit. It has utilities that you can use to kill a process on NT type os's.

Maybe you are looking for

  • How to use iMessage on the MacBook Air

    I can see anthing related to the iMessage on the MacBook Air. I sure there is a way that one can receive/send them, just I do not knowhow to! I can use it onmy iPhone and iPad, butnot the MacBook!

  • Addons crashing at random times om 8.81 PL05

    We have a unique situation at one of our clients and after going through SAP, the add-on vendors and our own fixes with no result,  I thought of asking you - the tech experts who do battle with SDK and add-ons. The situation is: SQL server 2008, Wind

  • Update of folios not working in my iPad

    Hi all, When I update the files, build the folio, and share it with my own Adobe content viewer ID, I could not get that file listed in ACV on my iPad. 1. I waited for several updates 2. signed out, signed in 3. tried loging in with my official DPS I

  • Sd tender Process(SAP R/3)

    Hi sd gurus, Here we r implementing R/3- ECC 6 Client name is ABC Here client floats tender  to parties regarding rate & quantity, Then ABC company recievs from Tender on quantity & rate from various parties. Then ABC management does negotiation with

  • AQ Asynchronous Processes Count

    Hi, Oracle 9i Version 2 aq_tm_processes = 2; job_queue_processes = 20; Does anyone know if it is possible to have more than 10 AQ callback procedures running at the same time? I use a PL/SQL callback procedure (asynchronous) that calls a JAVA stored