Example usage for org.apache.commons.io FileUtils checksumCRC32

List of usage examples for org.apache.commons.io FileUtils checksumCRC32

Introduction

In this page you can find the example usage for org.apache.commons.io FileUtils checksumCRC32.

Prototype

public static long checksumCRC32(File file) throws IOException 

Source Link

Document

Computes the checksum of a file using the CRC32 checksum routine.

Usage

From source file:algorithm.JPEGTextAddingTest.java

@Test
public void jpegTextAddingTest() {
    try {//from  w ww.ja va 2 s. c o  m
        File carrier = TestDataProvider.JPG_FILE;
        File payload1 = TestDataProvider.TXT_FILE;
        File payload2 = TestDataProvider.TXT_FILE_2;
        List<File> payloadList = new ArrayList<File>();
        payloadList.add(payload1);
        payloadList.add(payload2);

        JPEGTextAdding algorithm = new JPEGTextAdding();
        File outputFile = algorithm.encapsulate(carrier, payloadList);
        assertNotNull(outputFile);
        assertTrue(outputFile.length() > carrier.length());

        // Test restore:
        Hashtable<String, RestoredFile> outputHash = new Hashtable<String, RestoredFile>();
        for (RestoredFile file : algorithm.restore(outputFile)) {
            outputHash.put(file.getName(), file);
        }
        assertEquals(outputHash.size(), 3);
        RestoredFile restoredCarrier = outputHash.get(carrier.getName());
        RestoredFile restoredPayload1 = outputHash.get(payload1.getName());
        RestoredFile restoredPayload2 = outputHash.get(payload2.getName());
        assertEquals(restoredCarrier.length(), carrier.length());
        assertEquals(restoredPayload1.length(), payload1.length());
        assertNotNull(restoredCarrier);
        assertNotNull(restoredPayload1);
        assertNotNull(restoredPayload2);
        assertEquals(FileUtils.checksumCRC32(carrier), FileUtils.checksumCRC32(restoredCarrier));
        assertEquals(FileUtils.checksumCRC32(payload1), FileUtils.checksumCRC32(restoredPayload1));
        assertEquals(FileUtils.checksumCRC32(payload2), FileUtils.checksumCRC32(restoredPayload2));

        // check restoration metadata:
        assertEquals("" + carrier.getAbsolutePath(), restoredCarrier.originalFilePath);
        assertEquals("" + payload1.getAbsolutePath(), restoredPayload1.originalFilePath);
        assertEquals("" + payload2.getAbsolutePath(), restoredPayload2.originalFilePath);
        assertEquals(algorithm, restoredCarrier.algorithm);
        assertTrue(restoredCarrier.checksumValid);
        assertTrue(restoredPayload1.checksumValid);
        assertTrue(restoredPayload2.checksumValid);
        assertTrue(restoredCarrier.wasCarrier);
        assertFalse(restoredCarrier.wasPayload);
        assertTrue(restoredPayload1.wasPayload);
        assertFalse(restoredPayload1.wasCarrier);
        assertTrue(restoredPayload2.wasPayload);
        assertFalse(restoredPayload2.wasCarrier);
        assertTrue(restoredCarrier.relatedFiles.contains(restoredPayload1));
        assertTrue(restoredCarrier.relatedFiles.contains(restoredPayload2));
        assertFalse(restoredCarrier.relatedFiles.contains(restoredCarrier));
        assertTrue(restoredPayload1.relatedFiles.contains(restoredCarrier));
        assertTrue(restoredPayload1.relatedFiles.contains(restoredPayload2));
        assertFalse(restoredPayload1.relatedFiles.contains(restoredPayload1));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:com.leverno.ysbos.archive.AwsArchiver.java

/**
 * Returns a description in JSON format containing the
 * <ul>//  w  w  w .j a v  a 2  s.c o m
 * <li>file path</li>
 * <li>file checksum</li>
 * </ul>
 *
 * @param archiveFile
 * @return the description of the archive in JSON markup
 */
private String getArchiveDescription(File archiveFile) throws IOException {
    return String.format("{%s:%s,%s:%s", quotedString("path"), quotedString(archiveFile.getAbsolutePath()),
            quotedString("checksum_CRC32"), quotedString(Long.toString(FileUtils.checksumCRC32(archiveFile))));
}

From source file:algorithm.PNGChunkAddingTest.java

@Test
public void pngMultipleChunkAddingTest() {
    try {/*w  w w.  j  a va 2 s .c o m*/
        File carrier = TestDataProvider.PNG_FILE;
        File payload = TestDataProvider.TXT_FILE;
        File payload2 = TestDataProvider.TXT_FILE_2;

        List<File> payloadList = new ArrayList<File>();
        payloadList.add(payload);
        payloadList.add(payload2);

        PNGChunkAdding algorithm = new PNGChunkAdding();
        // Test encapsulation:
        File outputFile = algorithm.encapsulate(carrier, payloadList);
        assertNotNull(outputFile);

        // Test restore:
        Hashtable<String, RestoredFile> outputHash = new Hashtable<String, RestoredFile>();
        for (RestoredFile file : algorithm.restore(outputFile)) {
            outputHash.put(file.getName(), file);
        }
        assertEquals(3, outputHash.size());
        RestoredFile restoredCarrier = outputHash.get(carrier.getName());
        RestoredFile restoredPayload = outputHash.get(payload.getName());
        RestoredFile restoredPayload2 = outputHash.get(payload2.getName());
        assertNotNull(restoredCarrier);
        assertNotNull(restoredPayload);
        assertNotNull(restoredPayload2);
        // TODO: The carrier checksum is not valid, because the PNG library
        // reorders the chunks! We would have to use a different library.
        // assertEquals(FileUtils.checksumCRC32(carrier),
        // FileUtils.checksumCRC32(restoredCarrier));
        assertEquals(FileUtils.checksumCRC32(payload), FileUtils.checksumCRC32(restoredPayload));
        assertEquals(FileUtils.checksumCRC32(payload2), FileUtils.checksumCRC32(restoredPayload2));

        // check restoration metadata:
        assertEquals("" + carrier.getAbsolutePath(), restoredCarrier.originalFilePath);
        assertEquals("" + payload.getAbsolutePath(), restoredPayload.originalFilePath);
        assertEquals(algorithm, restoredCarrier.algorithm);
        // can't be true for this algorithm:
        // assertTrue(restoredCarrier.checksumValid);
        assertTrue(restoredPayload.checksumValid);
        assertTrue(restoredCarrier.wasCarrier);
        assertFalse(restoredCarrier.wasPayload);
        assertTrue(restoredPayload.wasPayload);
        assertFalse(restoredPayload.wasCarrier);
        assertTrue(restoredCarrier.relatedFiles.contains(restoredPayload));
        assertFalse(restoredCarrier.relatedFiles.contains(restoredCarrier));
        assertTrue(restoredPayload.relatedFiles.contains(restoredCarrier));
        assertFalse(restoredPayload.relatedFiles.contains(restoredPayload));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:algorithm.PDFFileAttacherTest.java

@Test
public void pdfSingleFileAttacherTest() {
    try {/*from  w ww.  jav  a2s  .  com*/
        File carrier = TestDataProvider.PDF_FILE;
        File payload = TestDataProvider.TXT_FILE;
        PDFFileAttacher algorithm = new PDFFileAttacher();
        // Test encapsulation:
        List<File> payloadList = new ArrayList<File>();
        payloadList.add(payload);
        File outputFile = algorithm.encapsulate(carrier, payloadList);
        assertNotNull(outputFile);
        assertTrue(outputFile.length() > carrier.length());
        // Test restore:
        Hashtable<String, RestoredFile> outputHash = new Hashtable<String, RestoredFile>();
        for (RestoredFile file : algorithm.restore(outputFile)) {
            outputHash.put(file.getName(), file);
        }
        assertEquals(2, outputHash.size());
        RestoredFile restoredCarrier = outputHash.get(carrier.getName());
        RestoredFile restoredPayload = outputHash.get(payload.getName());
        assertNotNull(restoredCarrier);
        assertNotNull(restoredPayload);
        /*
         * TODO: as long as I can see, it is at the moment not possible to
         * remove the attached file with pdf box, so we can't restore the
         * carrier. We would have to use a different pdf library to solve
         * this.
         */
        // assertEquals(FileUtils.checksumCRC32(carrier),
        // FileUtils.checksumCRC32(restoredCarrier));
        assertEquals(FileUtils.checksumCRC32(payload), FileUtils.checksumCRC32(restoredPayload));

        // check restoration metadata:
        // (This algorithm doesn't save original file paths, as it doesn't
        // use the payload segment)
        assertEquals(algorithm, restoredCarrier.algorithm);
        // assertTrue(restoredCarrier.checksumValid);
        assertTrue(restoredPayload.checksumValid);
        assertTrue(restoredCarrier.wasCarrier);
        assertFalse(restoredCarrier.wasPayload);
        assertTrue(restoredPayload.wasPayload);
        assertFalse(restoredPayload.wasCarrier);
        assertTrue(restoredCarrier.relatedFiles.contains(restoredPayload));
        assertFalse(restoredCarrier.relatedFiles.contains(restoredCarrier));
        assertTrue(restoredPayload.relatedFiles.contains(restoredCarrier));
        assertFalse(restoredPayload.relatedFiles.contains(restoredPayload));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:com.aionlightning.slf4j.conversion.TruncateToZipFileAppender.java

/**
 * This method creates archive with file instead of deleting it.
 * //from  w w  w.  j ava  2s.c  o  m
 * @param file
 *            file to truncate
 */
protected void truncate(File file) {
    File backupRoot = new File(backupDir);
    if (!backupRoot.exists() && !backupRoot.mkdirs()) {
        log.warn("Can't create backup dir for backup storage");
        return;
    }

    String date = "";
    try {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        date = reader.readLine().split("\f")[1];
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    File zipFile = new File(backupRoot, file.getName() + "." + date + ".zip");
    ZipOutputStream zos = null;
    FileInputStream fis = null;
    try {
        zos = new ZipOutputStream(new FileOutputStream(zipFile));
        ZipEntry entry = new ZipEntry(file.getName());
        entry.setMethod(ZipEntry.DEFLATED);
        entry.setCrc(FileUtils.checksumCRC32(file));
        zos.putNextEntry(entry);
        fis = FileUtils.openInputStream(file);

        byte[] buffer = new byte[1024];
        int readed;
        while ((readed = fis.read(buffer)) != -1) {
            zos.write(buffer, 0, readed);
        }

    } catch (Exception e) {
        log.warn("Can't create zip file", e);
    } finally {
        if (zos != null) {
            try {
                zos.close();
            } catch (IOException e) {
                log.warn("Can't close zip file", e);
            }
        }

        if (fis != null) {
            try {
                fis.close();
            } catch (IOException e) {
                log.warn("Can't close zipped file", e);
            }
        }
    }

    if (!file.delete()) {
        log.warn("Can't delete old log file " + file.getAbsolutePath());
    }
}

From source file:com.izforge.izpack.test.util.TestHelper.java

/**
 * Verifies that two files have the same content.
 * <p/>// w w  w .  j  a va 2  s .  co  m
 * The files must have different paths.
 *
 * @param expected the expected file
 * @param actual   the actual file
 */
public static void assertFileEquals(File expected, File actual) {
    assertTrue(actual.exists());
    assertFalse(actual.getAbsolutePath().equals(expected.getAbsolutePath()));
    assertEquals(expected.length(), actual.length());
    try {
        assertEquals(FileUtils.checksumCRC32(expected), FileUtils.checksumCRC32(actual));
    } catch (IOException exception) {
        fail(exception.getMessage());
    }
}

From source file:com.chingo247.structureapi.plan.schematic.SchematicManager.java

public boolean hasSchematic(StructurePlan plan) throws IOException {
    long checkskum = FileUtils.checksumCRC32(plan.getSchematic());
    return hasSchematic(checkskum);
}

From source file:model.PayloadSegment.java

/**
 * This constructor is for spare algorithms with low capacity.
 * //from w  w  w  .  jav a 2s.  co m
 * @param payload
 */
public PayloadSegment(File payload) {
    String payloadChecksum = "";
    try {
        this.payload = FileUtils.readFileToByteArray(payload);
        payloadChecksum += FileUtils.checksumCRC32(payload);
    } catch (IOException e) {
    }
    properties.put("payloadName", payload.getName());
    properties.put("payloadChecksum", payloadChecksum);
}

From source file:com.chingo247.structureapi.plan.StructurePlan.java

public void load(AbstractDocument document) throws StructureDataException, IOException {
    xmlFile = document.getDocumentFile();
    pluginElement = document.getPluginElement(Bukkit.getPluginManager().getPlugin("SettlerCraft"));

    Element scElement = pluginElement.getAsElement();

    Node schematicNode = scElement.selectSingleNode(Nodes.SCHEMATIC_NODE);
    if (schematicNode == null) {
        throw new StructureDataException(
                "Missing  Structure Schematic in " + document.getDocumentFile().getAbsolutePath());
    }// w ww  .j a va 2s. co  m

    File s = new File(document.getDocumentFile().getParent(), schematicNode.getText());
    if (s.exists()) {
        schematic = s;
    } else {
        throw new FileNotFoundException("Couldn't resolve path for " + s.getAbsolutePath() + " for config:  "
                + document.getDocumentFile().getAbsolutePath());
    }

    checksum = FileUtils.checksumCRC32(s);

    name = pluginElement.getStringValue(Nodes.NAME_NODE);
    if (name == null) {
        name = FilenameUtils.getBaseName(schematic.getName());
    }
    category = pluginElement.getStringValue(Nodes.CATEGORY_NODE);
    if (category == null) {
        category = "Default";
    }

    description = pluginElement.getStringValue(Nodes.DESCRIPTION_NODE);
    if (description == null) {
        description = "-";
    }

    try {
        price = pluginElement.getDoubleValue(Nodes.PRICE_NODE);
    } catch (NumberFormatException nfe) {
        throw new StructureDataException("Value of 'Price' must be a number, error generated in "
                + document.getDocumentFile().getAbsolutePath());
    }
    if (price == null) {
        price = 0.0;
    }

    Node worldGuardFlagsNode = scElement.selectSingleNode(Nodes.WORLDGUARD_FLAGS_NODE);
    if (worldGuardFlagsNode != null) {
        regionFlags = new StructureRegionFlagLoader().load((Element) worldGuardFlagsNode);
    } else {
        regionFlags = new LinkedList<>();
    }

    Node structureOverviewsNode = scElement.selectSingleNode(Nodes.STRUCTURE_OVERVIEWS_NODE);
    if (structureOverviewsNode != null) {
        overviews = new StructureOverviewLoader().load((Element) structureOverviewsNode);
    } else {
        overviews = new LinkedList<>();
    }

    Node structureHologramsNode = scElement.selectSingleNode(Nodes.HOLOGRAMS_NODE);
    if (structureOverviewsNode != null) {
        holograms = new StructureHologramLoader().load((Element) structureHologramsNode);
    } else {
        holograms = new LinkedList<>();
    }
}

From source file:gov.nih.nci.caarray.application.fileaccess.FileAccessUtils.java

/**
 * Adds the given file to the given zip output stream using the given name as the zip entry name. This method will
 * NOT call finish on the zip output stream at the end.
 * //from w  w  w .ja  v  a2s  . c o m
 * @param zos the zip output stream to add the file to. This stream must already be open.
 * @param file the file to put in the zip.
 * @param name the name to use for this zip entry.
 * @param addAsStored if true, then the file will be added to the zip as a STORED entry (e.g. without applying
 *            compression to it); if false, then the file will be added to the zip as a DEFLATED entry.
 * @throws IOException if there is an error writing to the stream
 */
public void writeZipEntry(ZipOutputStream zos, File file, String name, boolean addAsStored) throws IOException {
    final ZipEntry ze = new ZipEntry(name);
    ze.setMethod(addAsStored ? ZipEntry.STORED : ZipEntry.DEFLATED);
    if (addAsStored) {
        ze.setSize(file.length());
        ze.setCrc(FileUtils.checksumCRC32(file));
    }
    zos.putNextEntry(ze);
    final InputStream is = FileUtils.openInputStream(file);
    IOUtils.copy(is, zos);
    zos.closeEntry();
    zos.flush();
    IOUtils.closeQuietly(is);
}