134 lines
4.5 KiB
Java
134 lines
4.5 KiB
Java
package it.acxent.face.test;
|
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonParser;
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedOutputStream;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.net.URI;
|
|
import java.util.Deque;
|
|
import java.util.LinkedList;
|
|
import java.util.zip.ZipEntry;
|
|
import java.util.zip.ZipInputStream;
|
|
import java.util.zip.ZipOutputStream;
|
|
|
|
public class Test {
|
|
public static void main(String[] args) {
|
|
testJson();
|
|
}
|
|
|
|
public static boolean unzip(String zipFileName, String location) {
|
|
boolean ok = true;
|
|
int BUFFERSIZE = 1024;
|
|
if (!location.endsWith("/"))
|
|
location = location + "/";
|
|
try {
|
|
FileInputStream fin = new FileInputStream(zipFileName);
|
|
ZipInputStream zin = new ZipInputStream(fin);
|
|
ZipEntry ze = null;
|
|
ze = zin.getNextEntry();
|
|
while ((ze = zin.getNextEntry()) != null) {
|
|
String file2Unzip = location + location;
|
|
if (ze.isDirectory()) {
|
|
File f = new File(file2Unzip);
|
|
if (!f.isDirectory())
|
|
f.mkdirs();
|
|
continue;
|
|
}
|
|
String dir = file2Unzip;
|
|
dir = dir.substring(0, dir.lastIndexOf("/"));
|
|
File dirFile = new File(dir);
|
|
if (!dirFile.exists())
|
|
dirFile.mkdirs();
|
|
FileOutputStream fout = new FileOutputStream(file2Unzip);
|
|
BufferedInputStream in = new BufferedInputStream(zin);
|
|
BufferedOutputStream out = new BufferedOutputStream(fout);
|
|
byte[] buffer = new byte[BUFFERSIZE];
|
|
int n;
|
|
while ((n = in.read(buffer, 0, BUFFERSIZE)) >= 0)
|
|
out.write(buffer, 0, n);
|
|
zin.closeEntry();
|
|
out.close();
|
|
}
|
|
zin.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
if (!ok)
|
|
System.out.println("Unzip Error unzipping " + zipFileName + " on dir " + location);
|
|
return ok;
|
|
}
|
|
|
|
public static boolean zipDir(File directory, String zipfile, boolean saveOrixginalPath) {
|
|
boolean ok = true;
|
|
System.out.println("ZipDir: start zipping: " + directory.getName());
|
|
if (directory.isDirectory()) {
|
|
URI base = directory.toURI();
|
|
Deque<File> queue = new LinkedList<>();
|
|
queue.push(directory);
|
|
OutputStream out = null;
|
|
ZipOutputStream zout = null;
|
|
try {
|
|
out = new FileOutputStream(zipfile);
|
|
zout = new ZipOutputStream(out);
|
|
while (!queue.isEmpty()) {
|
|
directory = queue.pop();
|
|
for (File kid : directory.listFiles()) {
|
|
String name = base.relativize(kid.toURI()).getPath();
|
|
if (kid.isDirectory()) {
|
|
queue.push(kid);
|
|
name = name.endsWith("/") ? name : (name + "/");
|
|
zout.putNextEntry(new ZipEntry(name));
|
|
} else {
|
|
zout.putNextEntry(new ZipEntry(name));
|
|
System.out.println("ZipDir: adding file " + name + " - " + kid.getCanonicalPath());
|
|
InputStream in = new FileInputStream(kid);
|
|
try {
|
|
byte[] buffer = new byte[1024];
|
|
while (true) {
|
|
int readCount = in.read(buffer);
|
|
if (readCount < 0)
|
|
break;
|
|
zout.write(buffer, 0, readCount);
|
|
}
|
|
} finally {
|
|
in.close();
|
|
}
|
|
zout.closeEntry();
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
ok = false;
|
|
e.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (zout != null)
|
|
zout.close();
|
|
} catch (Exception e2) {
|
|
ok = false;
|
|
e2.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
if (ok) {
|
|
System.out.println("ZipDir: " + directory.getName());
|
|
} else {
|
|
System.out.println("ZipDir: Error zipping " + directory.getName() + " on file " + zipfile);
|
|
}
|
|
return ok;
|
|
}
|
|
|
|
public static final void testJson() {
|
|
String test = "{\n \"md5\": \"ae80c15c084a6952a6bdb66fc8051025\",\n \"type\": \"face\",\n \"score\": 0.0025377847589993507,\n \"db\": \"false\"\n}";
|
|
JsonObject jo = JsonParser.parseString(test).getAsJsonObject();
|
|
System.out.println("MD5: " + jo.get("md5").getAsString());
|
|
System.out.println("Type: " + jo.get("type").getAsString());
|
|
System.out.println("Score: " + jo.get("score").getAsDouble());
|
|
System.out.println("DB: " + jo.get("db").getAsBoolean());
|
|
}
|
|
}
|