/** * Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.gistlabs.mechanize.util; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.apache.http.HttpResponse; /** * @author Martin Kersten<Martin.Kersten.mk@gmail.com> */ public class Util { public static <T> List<T> newEmptyList() { return new ArrayList<T>(); } /** Returns the first header with the given name (case-insensitive) or null. */ public static Header findHeader(HttpResponse response, String headerName) { Header[] headers = response.getHeaders(headerName); return headers.length > 0 ? headers[0] : null; } /** Returns a new File object from the given fileName and deleting the file if already exists. */ public static File newFile(String fileName) { File file = new File(fileName); if(file.exists()) file.delete(); return file; } public static void copy(InputStream in, File outFile) throws IOException { copy(in, new FileOutputStream(outFile)); } public static void copy(InputStream in, OutputStream out) throws IOException { try { byte[] buffer = new byte[1024*16]; int len = in.read(buffer); while (len != -1) { out.write(buffer, 0, len); len = in.read(buffer); } } finally { try { in.close(); } catch(Throwable t) {} try { out.close(); } catch(Throwable t) {} } } public static String getStringFromInputStream(InputStream is) { BufferedReader br = null; StringBuilder sb = new StringBuilder(); String line; try { br = new BufferedReader(new InputStreamReader(is)); while ((line = br.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return sb.toString(); } }