org.jetbrains.java.decompiler.util.InterpreterUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vineflower Show documentation
Show all versions of vineflower Show documentation
Modern Java & JVM language decompiler aiming to be as accurate as possible, with an emphasis on output quality.
The newest version!
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.java.decompiler.util;
import java.io.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public final class InterpreterUtil {
public static final int[] EMPTY_INT_ARRAY = new int[0];
private static final int BUFFER_SIZE = 16 * 1024;
public static void copyFile(File source, File target) throws IOException {
try (FileInputStream in = new FileInputStream(source); FileOutputStream out = new FileOutputStream(target)) {
copyStream(in, out);
}
}
public static void copyStream(InputStream in, OutputStream out) throws IOException {
in.transferTo(out);
}
public static byte[] getBytes(ZipFile archive, ZipEntry entry) throws IOException {
try (InputStream stream = archive.getInputStream(entry)) {
return readBytes(stream, (int)entry.getSize());
}
}
public static byte[] getBytes(File file) throws IOException {
try (FileInputStream stream = new FileInputStream(file)) {
return readBytes(stream, (int)file.length());
}
}
public static byte[] readBytes(InputStream stream, int length) throws IOException {
byte[] bytes = stream.readNBytes(length);
if (bytes.length < length) {
throw new IOException("premature end of stream");
}
return bytes;
}
public static void discardBytes(InputStream stream, int length) throws IOException {
if (stream.skip(length) != length) {
throw new IOException("premature end of stream");
}
}
public static boolean equalSets(Collection> c1, Collection> c2) {
if (c1 == null) {
return c2 == null;
}
else if (c2 == null) {
return false;
}
if (c1.size() != c2.size()) {
return false;
}
HashSet
© 2015 - 2024 Weber Informatics LLC | Privacy Policy