Example usage for org.apache.commons.compress.compressors.bzip2 BZip2CompressorInputStream read

List of usage examples for org.apache.commons.compress.compressors.bzip2 BZip2CompressorInputStream read

Introduction

In this page you can find the example usage for org.apache.commons.compress.compressors.bzip2 BZip2CompressorInputStream read.

Prototype

public int read() throws IOException 

Source Link

Usage

From source file:de.indiplex.javapt.JavAPT.java

public void updateSources(boolean downloadSs) throws URISyntaxException, IOException, SQLException {
    Statement stat = db.getStat();
    stat.executeUpdate("DELETE FROM packages;");
    debs = new ArrayList<DEB>();
    int last = 0;
    for (String u : sourcesURLs) {
        String pre = new URL(u).getHost();
        File out = new File(dTemp, pre + ".source");
        if (downloadSs) {
            URLConnection con = new URL(u.toString() + "Packages.bz2").openConnection();
            File tmpOut = new File(dTemp, pre + ".source.bz2");

            System.out.println("Downloading " + con.getURL() + "...");

            download(con, tmpOut);/* w  ww  . j  a va2 s  .c om*/

            System.out.println("Decompressing...");
            CountingFileInputStream fis = new CountingFileInputStream(tmpOut);
            BZip2CompressorInputStream in = new BZip2CompressorInputStream(fis);
            Finish = tmpOut.length();

            Util.checkFiles(out);
            OutputStream fout = new FileOutputStream(out);
            int i = in.read();
            while (i != -1) {
                State = fis.getCount();
                fout.write(i);
                i = in.read();
            }
            fout.close();

            in.close();
        }

        BufferedReader br = new BufferedReader(new FileReader(out));
        DEB deb = null;
        ArrayList<String> lines = new ArrayList<String>();
        while (br.ready()) {
            String line = br.readLine();
            lines.add(line);
        }
        Finish = lines.size();
        State = 0;
        System.out.println("Parsing...");
        for (String line : lines) {
            State++;
            if (line.startsWith("Package")) {
                if (deb != null) {
                    debs.add(deb);
                }
                deb = new DEB(p(line));
            }
            if (line.startsWith("Depends")) {
                if (deb == null) {
                    continue;
                }
                deb.depends = p(line).trim();
                deb.depends = deb.depends.replaceAll("\\({1}[^\\(]*\\)", "");
            }
            if (line.startsWith("Provides")) {
                if (deb == null) {
                    continue;
                }
                deb.provides = p(line);
            }
            if (line.startsWith("Filename")) {
                if (deb == null) {
                    continue;
                }
                deb.filename = u + p(line);
                if (u.equals("http://apt.saurik.com/dists/ios/675.00/main/binary-iphoneos-arm/")) {
                    deb.filename = "http://apt.saurik.com/" + p(line);
                }
                if (u.contains("apt.thebigboss")) {
                    deb.filename = deb.filename.replace("dists/stable/main/binary-iphoneos-arm/", "");
                }
                deb.filename = deb.filename.replace("http://", "");
                deb.filename = deb.filename.replace("//", "/");
                deb.filename = "http://" + deb.filename;
            }
        }
        System.out.println("Updated " + u + "! " + (debs.size() - last) + " packages found");
        last = debs.size();
    }
    PreparedStatement pstat = db
            .getPreparedStatement("INSERT INTO packages (name, depends, provides, filename) VALUES (?,?,?,?);");
    for (DEB deb : debs) {
        pstat.setString(1, deb.packagename);
        pstat.setString(2, deb.depends);
        pstat.setString(3, deb.provides);
        pstat.setString(4, deb.filename);
        pstat.addBatch();
    }
    db.closePS();
    if (isGUI()) {
        mf.fillPackages(debs);
    }
    hashDEB();
}