Java 类java.util.zip.CRC32 实例源码
项目:ts-cards
文件:DesfireUtils.java
public static byte[] calCrc32(byte[] data) {
Checksum checksum = new CRC32();
// update the current checksum with the specified array of bytes
checksum.update(data, 0, data.length);
// get the current checksum value
long checksumValue = checksum.getValue();
String hex = Long.toHexString(checksumValue).toUpperCase();
while (hex.length() < 8) {
hex = "0" + hex;
}
byte[] crc32 = Hex.decode(hex);
inverseBytes(crc32);
reverseArray(crc32);
return crc32;
}
项目:SecuritySample
文件:Utils.java
private static long getApkFileChecksum(Context context) {
String apkPath = context.getPackageCodePath();
Long chksum = null;
try {
// Open the file and build a CRC32 checksum.
FileInputStream fis = new FileInputStream(new File(apkPath));
CRC32 chk = new CRC32();
CheckedInputStream cis = new CheckedInputStream(fis, chk);
byte[] buff = new byte[80];
while (cis.read(buff) >= 0) ;
chksum = chk.getValue();
} catch (Exception e) {
e.printStackTrace();
}
return chksum;
}
项目:dremio-oss
文件:BackupRestoreUtil.java
private static void validateFileWithChecksum(FileSystem fs, Path filePath, BackupFileInfo backupFileInfo) throws IOException {
final CheckedInputStream cin = new CheckedInputStream(fs.open(filePath), new CRC32());
final BufferedReader reader = new BufferedReader(new InputStreamReader(cin));
final ObjectMapper objectMapper = new ObjectMapper();
String line;
long records = 0;
// parse records just to make sure formatting is correct
while ((line = reader.readLine()) != null) {
objectMapper.readValue(line, BackupRecord.class);
++records;
}
cin.close();
long found = cin.getChecksum().getValue();
if (backupFileInfo.getChecksum() != found) {
throw new IOException(format("Corrupt backup data file %s. Expected checksum %x, found %x", filePath, backupFileInfo.getChecksum(), found));
}
if (backupFileInfo.getRecords() != records) {
throw new IOException(format("Corrupt backup data file %s. Expected records %x, found %x", filePath, backupFileInfo.getRecords(), records));
}
}
项目:incubator-netbeans
文件:SetupHid.java
private static void writeJarEntry(JarOutputStream jos, String path, File f) throws IOException, FileNotFoundException {
JarEntry je = new JarEntry(path);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = new FileInputStream(f);
try {
copyStreams(is, baos);
} finally {
is.close();
}
byte[] data = baos.toByteArray();
je.setSize(data.length);
CRC32 crc = new CRC32();
crc.update(data);
je.setCrc(crc.getValue());
jos.putNextEntry(je);
jos.write(data);
}
项目:hadoop
文件:DataChecksum.java
public static DataChecksum newDataChecksum(Type type, int bytesPerChecksum ) {
if ( bytesPerChecksum <= 0 ) {
return null;
}
switch ( type ) {
case NULL :
return new DataChecksum(type, new ChecksumNull(), bytesPerChecksum );
case CRC32 :
return new DataChecksum(type, newCrc32(), bytesPerChecksum );
case CRC32C:
return new DataChecksum(type, new PureJavaCrc32C(), bytesPerChecksum);
default:
return null;
}
}
项目:incubator-netbeans
文件:UpdateTracking.java
public static long getFileCRC(File file) throws IOException {
BufferedInputStream bsrc = null;
CRC32 crc = new CRC32();
try {
bsrc = new BufferedInputStream( new FileInputStream( file ) );
byte[] bytes = new byte[1024];
int i;
while( (i = bsrc.read(bytes)) != -1 ) {
crc.update(bytes, 0, i );
}
}
finally {
if ( bsrc != null ) {
bsrc.close();
}
}
return crc.getValue();
}
项目:incubator-netbeans
文件:SetupHid.java
private static void writeJarEntry(JarOutputStream jos, String path, File f) throws IOException, FileNotFoundException {
JarEntry je = new JarEntry(path);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = new FileInputStream(f);
try {
copyStreams(is, baos);
} finally {
is.close();
}
byte[] data = baos.toByteArray();
je.setSize(data.length);
CRC32 crc = new CRC32();
crc.update(data);
je.setCrc(crc.getValue());
jos.putNextEntry(je);
jos.write(data);
}
项目:framework
文件:SSLUtil.java
/**
* Generates a CRC 32 Value of String passed
*
* @param data
* @return long crc32 value of input. -1 if string is null
* @throws RuntimeException if UTF-8 is not a supported character set
*/
public static long crc32(String data) {
if (data == null) {
return -1;
}
try {
// get bytes from string
byte bytes[] = data.getBytes("UTF-8");
Checksum checksum = new CRC32();
// update the current checksum with the specified array of bytes
checksum.update(bytes, 0, bytes.length);
// get the current checksum value
return checksum.getValue();
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
项目:hadoop-oss
文件:DataChecksum.java
public static DataChecksum newDataChecksum(Type type, int bytesPerChecksum ) {
if ( bytesPerChecksum <= 0 ) {
return null;
}
switch ( type ) {
case NULL :
return new DataChecksum(type, new ChecksumNull(), bytesPerChecksum );
case CRC32 :
return new DataChecksum(type, newCrc32(), bytesPerChecksum );
case CRC32C:
return new DataChecksum(type, new PureJavaCrc32C(), bytesPerChecksum);
default:
return null;
}
}
项目:VASSAL-src
文件:ZipUpdater.java
private long getCrc(ZipFile file, ZipEntry entry) throws IOException {
long crc = -1;
if (entry != null) {
crc = entry.getCrc();
if (crc < 0) {
CRC32 checksum = new CRC32();
final InputStream in = file.getInputStream(entry);
try {
final byte[] buffer = new byte[1024];
int count;
while ((count = in.read(buffer)) >= 0) {
checksum.update(buffer, 0, count);
}
in.close();
crc = checksum.getValue();
}
finally {
IOUtils.closeQuietly(in);
}
}
}
return crc;
}
项目:session-to-cookie
文件:ChecksumHelper.java
/**
* extracts the checksum of the source, calculates a new one on the cut off source and compares them.
* returns the cut off data only if the checksums matched
*
* @param source
* @return
*/
protected byte[] validateAndStripChecksum(byte[] source) {
// retrieve checksum
int lastIndexOf = Bytes.lastIndexOf(source, (byte) SEPARATOR);
if (lastIndexOf < 0) {
throw new RuntimeException("no checksum was found on source: " + new String(source));
}
long checkSum = Long.parseLong(new String(Arrays.copyOfRange(source, lastIndexOf + 1, source.length)));
byte[] data = Arrays.copyOfRange(source, 0, lastIndexOf);
CRC32 crc32 = new CRC32();
crc32.update(data);
long calculatedCheckSum = crc32.getValue();
// validate checksum
if (Long.compare(checkSum, calculatedCheckSum) != 0) {
throw new RuntimeException("checksums do not match! calculated: " + calculatedCheckSum + ", provided: " + checkSum);
}
return data;
}
项目:alfresco-repository
文件:ChildAssocEntity.java
/**
* Find a CRC value for the full QName using UTF-8 conversion.
*
* @param qname the association qname
* @return Returns the CRC value (UTF-8 compatible)
*/
public static Long getQNameCrc(QName qname)
{
CRC32 crc = new CRC32();
try
{
crc.update(qname.getNamespaceURI().getBytes("UTF-8"));
crc.update(qname.getLocalName().getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e)
{
throw new RuntimeException("UTF-8 encoding is not supported");
}
return crc.getValue();
}
项目:boohee_v5.6
文件:Crc32.java
public static long file(File f) throws IOException {
FileInputStream fi = new FileInputStream(f);
byte[] buff = new byte[65536];
CRC32 crc32 = new CRC32();
while (true) {
try {
int len = fi.read(buff);
if (len == -1) {
break;
}
crc32.update(buff, 0, len);
} catch (Exception e) {
e.printStackTrace();
} finally {
fi.close();
}
}
return crc32.getValue();
}
项目:bytes-java
文件:BytesTransformTest.java
@Test
public void transformerInPlaceTest() throws Exception {
assertTrue(new BytesTransformer.BitSwitchTransformer(0, true).supportInPlaceTransformation());
assertTrue(new BytesTransformer.BitWiseOperatorTransformer(new byte[]{}, BytesTransformer.BitWiseOperatorTransformer.Mode.XOR).supportInPlaceTransformation());
assertTrue(new BytesTransformer.NegateTransformer().supportInPlaceTransformation());
assertTrue(new BytesTransformer.ShiftTransformer(0, BytesTransformer.ShiftTransformer.Type.LEFT_SHIFT).supportInPlaceTransformation());
assertTrue(new BytesTransformer.ReverseTransformer().supportInPlaceTransformation());
assertFalse(new BytesTransformer.MessageDigestTransformer("SHA1").supportInPlaceTransformation());
assertFalse(new BytesTransformer.CopyTransformer(0, 0).supportInPlaceTransformation());
assertFalse(new BytesTransformer.ResizeTransformer(0, BytesTransformer.ResizeTransformer.Mode.RESIZE_KEEP_FROM_MAX_LENGTH).supportInPlaceTransformation());
assertFalse(new BytesTransformer.ConcatTransformer(new byte[]{}).supportInPlaceTransformation());
assertFalse(new BytesTransformers.GzipCompressor(false).supportInPlaceTransformation());
assertFalse(new BytesTransformers.ChecksumTransformer(new CRC32(), ChecksumTransformer.Mode.TRANSFORM, 4).supportInPlaceTransformation());
assertTrue(new BytesTransformers.SortTransformer().supportInPlaceTransformation());
assertFalse(new BytesTransformers.SortTransformer(new Comparator<Byte>() {
@Override
public int compare(Byte o1, Byte o2) {
return 0;
}
}).supportInPlaceTransformation());
assertTrue(new BytesTransformers.ShuffleTransformer(new SecureRandom()).supportInPlaceTransformation());
}
项目:airsonic
文件:DownloadController.java
/**
* Computes the CRC checksum for the given file.
*
* @param file The file to compute checksum for.
* @return A CRC32 checksum.
* @throws IOException If an I/O error occurs.
*/
private long computeCrc(File file) throws IOException {
CRC32 crc = new CRC32();
InputStream in = new FileInputStream(file);
try {
byte[] buf = new byte[8192];
int n = in.read(buf);
while (n != -1) {
crc.update(buf, 0, n);
n = in.read(buf);
}
} finally {
in.close();
}
return crc.getValue();
}
项目:java-design-pattern-samples
文件:App.java
private static void readBytesByBufferedCheckedInputStream(byte[] bytes){
InputStream is = null;
int data = -1;
try {
is = new ByteArrayInputStream(bytes);
// 先用BufferedInputStream这个装饰器对ByteArrayInputStream进行包装
is = new BufferedInputStream(is);
// 再用CheckedInputStream这个装饰器对已经缓冲的流进行再次包装
CheckedInputStream cis = new CheckedInputStream(is, new CRC32());
while (-1 != (data = cis.read())){
System.out.print((char) data);
}
System.out.println(" crc32:" + cis.getChecksum().getValue());
System.out.println("-------------");
} catch (IOException e) {
e.printStackTrace();
}
}
项目:EasyML
文件:FileDownloadServlet.java
/**
* Compressed file or directory
*
* @param srcPath The address of the file or folder
* @param zipFilePath The address of the compressed package
*/
public static void zipFiles(String srcPath,String zipFilePath) {
File file = new File(srcPath);
if (!file.exists())
throw new RuntimeException(srcPath + "not exist!");
try {
FileOutputStream fileOutputStream = new FileOutputStream(zipFilePath);
CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
new CRC32());
ZipOutputStream out = new ZipOutputStream(cos);
String baseDir="";
zip(file,out,baseDir);
out.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
项目:myfaces-trinidad
文件:PNGEncoder.java
private static long _getCRC(int type, byte[] data)
{
CRC32 crc = new CRC32();
// First add in the type bytes
crc.update((type >> 24) & 0x000000ff);
crc.update((type >> 16) & 0x000000ff);
crc.update((type >> 8) & 0x000000ff);
crc.update(type & 0x000000ff);
// Now, add in the data
if (data != null)
crc.update(data);
return crc.getValue();
}
项目:letv
文件:ZipUtil.java
static long computeCrcOfCentralDir(RandomAccessFile raf, CentralDirectory dir) throws IOException {
CRC32 crc = new CRC32();
long stillToRead = dir.size;
raf.seek(dir.offset);
byte[] buffer = new byte[16384];
int length = raf.read(buffer, 0, (int) Math.min(16384, stillToRead));
while (length != -1) {
crc.update(buffer, 0, length);
stillToRead -= (long) length;
if (stillToRead == 0) {
break;
}
length = raf.read(buffer, 0, (int) Math.min(16384, stillToRead));
}
return crc.getValue();
}
项目:s-store
文件:SnapshotUtil.java
/**
* Check if the CRC of the snapshot file matches the digest.
* @param f The snapshot file object
* @return The table list as a string
* @throws IOException If CRC does not match
*/
public static String CRCCheck(File f) throws IOException {
final FileInputStream fis = new FileInputStream(f);
try {
final BufferedInputStream bis = new BufferedInputStream(fis);
ByteBuffer crcBuffer = ByteBuffer.allocate(4);
if (4 != bis.read(crcBuffer.array())) {
throw new EOFException("EOF while attempting to read CRC from snapshot digest");
}
final int crc = crcBuffer.getInt();
final InputStreamReader isr = new InputStreamReader(bis, "UTF-8");
CharArrayWriter caw = new CharArrayWriter();
while (true) {
int nextChar = isr.read();
if (nextChar == -1) {
throw new EOFException("EOF while reading snapshot digest");
}
if (nextChar == '\n') {
break;
}
caw.write(nextChar);
}
String tableList = caw.toString();
byte tableListBytes[] = tableList.getBytes("UTF-8");
CRC32 tableListCRC = new CRC32();
tableListCRC.update(tableListBytes);
tableListCRC.update("\n".getBytes("UTF-8"));
final int calculatedValue = (int)tableListCRC.getValue();
if (crc != calculatedValue) {
throw new IOException("CRC of snapshot digest did not match digest contents");
}
return tableList;
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException e) {}
}
}
项目:trashjam2017
文件:PNGDecoder.java
public PNGDecoder(InputStream input) throws IOException {
this.input = input;
this.crc = new CRC32();
this.buffer = new byte[4096];
readFully(buffer, 0, SIGNATURE.length);
if(!checkSignature(buffer)) {
throw new IOException("Not a valid PNG file");
}
openChunk(IHDR);
readIHDR();
closeChunk();
searchIDAT: for(;;) {
openChunk();
switch (chunkType) {
case IDAT:
break searchIDAT;
case PLTE:
readPLTE();
break;
case tRNS:
readtRNS();
break;
}
closeChunk();
}
if(colorType == COLOR_INDEXED && palette == null) {
throw new IOException("Missing PLTE chunk");
}
}
项目:sstable-adaptor
文件:FBUtilities.java
/**
* Updates checksum with the provided ByteBuffer at the given offset + length.
* Resets position and limit back to their original values on return.
* This method is *NOT* thread-safe.
*/
public static void updateChecksum(CRC32 checksum, ByteBuffer buffer, int offset, int length)
{
int position = buffer.position();
int limit = buffer.limit();
buffer.position(offset).limit(offset + length);
checksum.update(buffer);
buffer.position(position).limit(limit);
}
项目:sstable-adaptor
文件:FBUtilities.java
/**
* Updates checksum with the provided ByteBuffer.
* Resets position back to its original values on return.
* This method is *NOT* thread-safe.
*/
public static void updateChecksum(CRC32 checksum, ByteBuffer buffer)
{
int position = buffer.position();
checksum.update(buffer);
buffer.position(position);
}
项目:Quavo
文件:CacheAggregator.java
private static boolean isRepackingRequired(FileStore store, Entry entry, int type, int file) {
ByteBuffer buffer;
try {
buffer = store.read(type, file);
} catch (IOException ex) {
return true;
}
if (buffer.capacity() <= 2) {
return true;
}
byte[] bytes = new byte[buffer.limit() - 2];// last two bytes are the
// version and shouldn't be
// included
buffer.position(0);
buffer.get(bytes, 0, bytes.length);
CRC32 crc = new CRC32();
crc.update(bytes, 0, bytes.length);
if ((int) crc.getValue() != entry.getCrc()) {
return true;
}
buffer.position(buffer.limit() - 2);
if ((buffer.getShort() & 0xFFFF) != entry.getVersion()) {
return true;
}
return false;
}
项目:util4j
文件:TestCRC32l.java
public static String test(byte[] data)
{
long time=System.currentTimeMillis();
CRC32 crc32 = new CRC32();
crc32.update(data);
long value=crc32.getValue();
time=System.currentTimeMillis()-time;
String hexValue=Long.toHexString(crc32.getValue()).toUpperCase();
System.out.println(time+","+value+":"+hexValue);
return hexValue;
}
项目:javaide
文件:ZioEntry.java
public ZioEntry( String name, String sourceDataFile)
throws IOException
{
zipInput = new ZipInput( sourceDataFile);
filename = name;
fileComment = "";
this.compression = 0;
this.size = (int)zipInput.getFileLength();
this.compressedSize = this.size;
if (getLogger().isDebugEnabled())
getLogger().debug(String.format("Computing CRC for %s, size=%d",sourceDataFile,size));
// compute CRC
CRC32 crc = new CRC32();
byte[] buffer = new byte[8096];
int numRead = 0;
while (numRead != size) {
int count = zipInput.read( buffer, 0, Math.min( buffer.length, (this.size - numRead)));
if (count > 0) {
crc.update( buffer, 0, count);
numRead += count;
}
}
this.crc32 = (int)crc.getValue();
zipInput.seek(0);
this.dataPosition = 0;
extraData = new byte[0];
setTime( new File(sourceDataFile).lastModified());
}
项目:incubator-netbeans
文件:SetupHid.java
/**
* Create a fresh JAR file.
* @param jar the file to create
* @param contents keys are JAR entry paths, values are text contents (will be written in UTF-8)
* @param manifest a manifest to store (key/value pairs for main section)
*/
public static void createJar(File jar, Map<String,String> contents, Map<String,String> manifest) throws IOException {
// XXX use TestFileUtils.writeZipFile
Manifest m = new Manifest();
m.getMainAttributes().putValue("Manifest-Version", "1.0"); // workaround for JDK bug
for (Map.Entry<String,String> line : manifest.entrySet()) {
m.getMainAttributes().putValue(line.getKey(), line.getValue());
}
jar.getParentFile().mkdirs();
OutputStream os = new FileOutputStream(jar);
try {
JarOutputStream jos = new JarOutputStream(os, m);
Iterator it = contents.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String path = (String) entry.getKey();
byte[] data = ((String) entry.getValue()).getBytes("UTF-8");
JarEntry je = new JarEntry(path);
je.setSize(data.length);
CRC32 crc = new CRC32();
crc.update(data);
je.setCrc(crc.getValue());
jos.putNextEntry(je);
jos.write(data);
}
jos.close();
} finally {
os.close();
}
}
项目:incubator-netbeans
文件:FileUtils.java
public static long getCrc32(final InputStream input) throws IOException {
CRC32 crc = new CRC32();
final byte[] buffer = new byte[BUFFER_SIZE];
int readLength;
while ((readLength = input.read(buffer)) != -1) {
crc.update(buffer, 0, readLength);
}
return crc.getValue();
}
项目:incubator-netbeans
文件:MakeNBM.java
private String crcOf(StringBuffer text) {
CRC32 crc = new CRC32();
try {
crc.update(text.toString().replaceAll("\\s+", " ").trim().getBytes("UTF-8"));
} catch (UnsupportedEncodingException ex) {
throw new BuildException(ex);
}
return Long.toHexString(crc.getValue()).toUpperCase(Locale.ENGLISH);
}
项目:incubator-netbeans
文件:CreateLicenseSummary.java
private long computeCRC32(InputStream is) throws IOException {
byte[] buf = new byte[4096];
CRC32 crc32 = new CRC32();
int read;
while ((read = is.read(buf)) != -1) {
crc32.update(buf, 0, read);
}
return crc32.getValue();
}
项目:incubator-netbeans
文件:UpdateTracking.java
void addFileForRoot(File file) throws IOException {
CRC32 crc = crcForFile(file);
if (!file.getPath().startsWith(nbPath)) {
throw new BuildException("File " + file + " needs to be under " + nbPath);
}
String rel = file.getPath().substring(nbPath.length()).replace(File.separatorChar, '/');
if (rel.startsWith("/")) {
rel = rel.substring(1);
}
addFileWithCrc(rel, "" + crc.getValue());
}
项目:openjdk-jdk10
文件:BigJar.java
long computeCRC(File inFile) throws IOException {
byte[] buffer = new byte[8192];
CRC32 crc = new CRC32();
try (FileInputStream fis = new FileInputStream(inFile);
BufferedInputStream bis = new BufferedInputStream(fis)) {
int n = bis.read(buffer);
while (n > 0) {
crc.update(buffer, 0, n);
n = bis.read(buffer);
}
}
return crc.getValue();
}
项目:openjdk-jdk10
文件:T6836682.java
static long computeCRC(long minlength) {
CRC32 crc = new CRC32();
byte[] buffer = new byte[BUFFER_LEN];
long count = getCount(minlength);
for (long i = 0; i < count; i++) {
crc.update(buffer);
}
return crc.getValue();
}
项目:odb-little-fortune-planet
文件:PNGDecoder.java
public PNGDecoder(InputStream input) throws IOException {
this.input = input;
this.crc = new CRC32();
this.buffer = new byte[4096];
readFully(buffer, 0, SIGNATURE.length);
if(!checkSignature(buffer)) {
throw new IOException("Not a valid PNG file");
}
openChunk(IHDR);
readIHDR();
closeChunk();
searchIDAT: for(;;) {
openChunk();
switch (chunkType) {
case IDAT:
break searchIDAT;
case PLTE:
readPLTE();
break;
case tRNS:
readtRNS();
break;
}
closeChunk();
}
if(colorType == COLOR_INDEXED && palette == null) {
throw new IOException("Missing PLTE chunk");
}
}
项目:openjdk-jdk10
文件:HotSpotGraphBuilderPlugins.java
private static void registerCRC32Plugins(InvocationPlugins plugins, GraalHotSpotVMConfig config, BytecodeProvider bytecodeProvider) {
if (config.useCRC32Intrinsics) {
Registration r = new Registration(plugins, CRC32.class, bytecodeProvider);
r.registerMethodSubstitution(CRC32Substitutions.class, "update", int.class, int.class);
if (Java8OrEarlier) {
r.registerMethodSubstitution(CRC32Substitutions.class, "updateBytes", int.class, byte[].class, int.class, int.class);
r.registerMethodSubstitution(CRC32Substitutions.class, "updateByteBuffer", int.class, long.class, int.class, int.class);
} else {
r.registerMethodSubstitution(CRC32Substitutions.class, "updateBytes0", int.class, byte[].class, int.class, int.class);
r.registerMethodSubstitution(CRC32Substitutions.class, "updateByteBuffer0", int.class, long.class, int.class, int.class);
}
}
}
项目:Towan
文件:PNGDecoder.java
public PNGDecoder(InputStream input) throws IOException {
this.input = input;
this.crc = new CRC32();
this.buffer = new byte[4096];
readFully(buffer, 0, SIGNATURE.length);
if(!checkSignature(buffer)) {
throw new IOException("Not a valid PNG file");
}
openChunk(IHDR);
readIHDR();
closeChunk();
searchIDAT: for(;;) {
openChunk();
switch (chunkType) {
case IDAT:
break searchIDAT;
case PLTE:
readPLTE();
break;
case tRNS:
readtRNS();
break;
}
closeChunk();
}
if(colorType == COLOR_INDEXED && palette == null) {
throw new IOException("Missing PLTE chunk");
}
}
项目:BaseClient
文件:PNGDecoder.java
public PNGDecoder(InputStream input) throws IOException {
this.input = input;
this.crc = new CRC32();
this.buffer = new byte[4096];
readFully(buffer, 0, SIGNATURE.length);
if(!checkSignature(buffer)) {
throw new IOException("Not a valid PNG file");
}
openChunk(IHDR);
readIHDR();
closeChunk();
searchIDAT: for(;;) {
openChunk();
switch (chunkType) {
case IDAT:
break searchIDAT;
case PLTE:
readPLTE();
break;
case tRNS:
readtRNS();
break;
}
closeChunk();
}
if(colorType == COLOR_INDEXED && palette == null) {
throw new IOException("Missing PLTE chunk");
}
}
项目:trellis-rosid-file
文件:FileUtils.java
/**
* Partition an identifier into a directory structure
* @param identifier the identifier
* @return a string usable as a directory path
*/
public static String partition(final String identifier) {
requireNonNull(identifier, "identifier must not be null!");
final StringJoiner joiner = new StringJoiner(separator);
final CRC32 hasher = new CRC32();
hasher.update(identifier.getBytes(UTF_8));
final String intermediate = Long.toHexString(hasher.getValue());
range(0, intermediate.length() / LENGTH).limit(MAX)
.forEach(i -> joiner.add(intermediate.substring(i * LENGTH, (i + 1) * LENGTH)));
joiner.add(md5Hex(identifier));
return joiner.toString();
}
项目:incubator-netbeans
文件:URLMapperTest.java
/**
* Check that jar: URLs are correctly mapped back into JarFileSystem resources.
* @see "#39190"
*/
public void testJarMapping() throws Exception {
clearWorkDir();
File workdir = getWorkDir();
File jar = new File(workdir, "test.jar");
String textPath = "x.txt";
OutputStream os = new FileOutputStream(jar);
try {
JarOutputStream jos = new JarOutputStream(os);
jos.setMethod(ZipEntry.STORED);
JarEntry entry = new JarEntry(textPath);
entry.setSize(0L);
entry.setTime(System.currentTimeMillis());
entry.setCrc(new CRC32().getValue());
jos.putNextEntry(entry);
jos.flush();
jos.close();
} finally {
os.close();
}
assertTrue("JAR was created", jar.isFile());
assertTrue("JAR is not empty", jar.length() > 0L);
JarFileSystem jfs = new JarFileSystem();
jfs.setJarFile(jar);
Repository.getDefault().addFileSystem(jfs);
FileObject rootFO = jfs.getRoot();
FileObject textFO = jfs.findResource(textPath);
assertNotNull("JAR contains a/b.txt", textFO);
String rootS = "jar:" + BaseUtilities.toURI(jar) + "!/";
URL rootU = new URL(rootS);
URL textU = new URL(rootS + textPath);
assertEquals("correct FO -> URL for root", rootU, URLMapper.findURL(rootFO, URLMapper.EXTERNAL));
assertEquals("correct FO -> URL for " + textPath, textU, URLMapper.findURL(textFO, URLMapper.EXTERNAL));
assertTrue("correct URL -> FO for root", Arrays.asList(URLMapper.findFileObjects(rootU)).contains(rootFO));
assertTrue("correct URL -> FO for " + textPath, Arrays.asList(URLMapper.findFileObjects(textU)).contains(textFO));
}
项目:Elasticsearch
文件:CompressedXContent.java
/**
* Create a {@link CompressedXContent} out of a {@link ToXContent} instance.
*/
public CompressedXContent(ToXContent xcontent, XContentType type, ToXContent.Params params) throws IOException {
BytesStreamOutput bStream = new BytesStreamOutput();
OutputStream compressedStream = CompressorFactory.defaultCompressor().streamOutput(bStream);
CRC32 crc32 = new CRC32();
OutputStream checkedStream = new CheckedOutputStream(compressedStream, crc32);
try (XContentBuilder builder = XContentFactory.contentBuilder(type, checkedStream)) {
builder.startObject();
xcontent.toXContent(builder, params);
builder.endObject();
}
this.bytes = bStream.bytes().toBytes();
this.crc32 = (int) crc32.getValue();
assertConsistent();
}