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 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()); } }