Java tutorial
//package com.java2s; /* ************************************************************************************* * * * WritePad Android Sample * * Unauthorized distribution of this code is prohibited. For more information * refer to the End User Software License Agreement provided with this * software. * * This source code is distributed and supported by PhatWare Corp. * http://www.phatware.com * * THIS SAMPLE CODE CAN BE USED AS A REFERENCE AND, IN ITS BINARY FORM, * IN THE USER'S PROJECT WHICH IS INTEGRATED WITH THE WRITEPAD SDK. * ANY OTHER USE OF THIS CODE IS PROHIBITED. * * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL PHATWARE CORP. * BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, SAVINGS * OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR NOT PHATWARE CORP. * HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. * * US Government Users Restricted Rights * Use, duplication, or disclosure by the Government is subject to * restrictions set forth in EULA and in FAR 52.227.19(c)(2) or subparagraph * (c)(1)(ii) of the Rights in Technical Data and Computer Software * clause at DFARS 252.227-7013 and/or in similar or successor * clauses in the FAR or the DOD or NASA FAR Supplement. * Unpublished-- rights reserved under the copyright laws of the * United States. Contractor/manufacturer is PhatWare Corp. * 10414 W. Highway 2, Ste 4-121 Spokane, WA 99224 * * ************************************************************************************* */ import java.io.ByteArrayOutputStream; 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.io.Reader; import java.io.StringWriter; import java.io.Writer; public class Main { public static String toString(InputStream input) throws IOException { StringWriter sw = new StringWriter(); copy(input, sw); return sw.toString(); } public static void copy(InputStream input, Writer output) throws IOException { InputStreamReader in = new InputStreamReader(input); copy(in, output); } public static int copy(Reader input, Writer output) throws IOException { char[] buffer = new char[10 * 1024]; int count = 0; int n = 0; while (-1 != (n = input.read(buffer))) { output.write(buffer, 0, n); count += n; } return count; } public static void copy(InputStream stream, String path) throws IOException { final File file = new File(path); if (file.exists()) { file.delete(); } final File parentFile = file.getParentFile(); if (!parentFile.exists()) { //noinspection ResultOfMethodCallIgnored parentFile.mkdir(); } if (file.exists()) { return; } OutputStream myOutput = new FileOutputStream(path, true); byte[] buffer = new byte[1024]; int length; while ((length = stream.read(buffer)) >= 0) { myOutput.write(buffer, 0, length); } //Close the streams myOutput.flush(); myOutput.close(); stream.close(); } public static byte[] read(InputStream stream) throws IOException { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { byte[] buffer = new byte[1024]; int length; while ((length = stream.read(buffer)) >= 0) { byteArrayOutputStream.write(buffer, 0, length); } stream.close(); return byteArrayOutputStream.toByteArray(); } finally { byteArrayOutputStream.flush(); byteArrayOutputStream.close(); } } }