View Javadoc

1   /*
2    * Copyright (c) 2003-2004, Henri Yandell
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or 
6    * without modification, are permitted provided that the 
7    * following conditions are met:
8    * 
9    * + Redistributions of source code must retain the above copyright notice, 
10   *   this list of conditions and the following disclaimer.
11   * 
12   * + Redistributions in binary form must reproduce the above copyright notice, 
13   *   this list of conditions and the following disclaimer in the documentation 
14   *   and/or other materials provided with the distribution.
15   * 
16   * + Neither the name of OSJava nor the names of its contributors 
17   *   may be used to endorse or promote products derived from this software 
18   *   without specific prior written permission.
19   * 
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
23   * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
30   * POSSIBILITY OF SUCH DAMAGE.
31   */
32  package org.osjava.payload;
33  
34  import java.io.InputStream;
35  import java.io.InputStreamReader;
36  import java.io.BufferedReader;
37  import java.io.IOException;
38  import java.io.OutputStream;
39  import java.io.ByteArrayOutputStream;
40  
41  /***
42   * Some helper methods to help with Payload's IO work. 
43   */
44  public class IOUtils {
45  
46      static void pushBytes(InputStream in, OutputStream out) throws IOException {
47          byte[] buffer = new byte[1023];
48          while(true) {
49              int size = in.read(buffer);
50              if(size == -1) {
51                  break;
52              }
53              out.write(buffer,0,size);
54          }
55      }
56  
57      static byte[] readToBytes(InputStream in) throws IOException {
58          ByteArrayOutputStream baos = new ByteArrayOutputStream();
59          pushBytes(in, baos);
60          return baos.toByteArray();
61      }
62  
63      static String readToString(InputStream in) throws IOException {
64          BufferedReader rdr = new BufferedReader(new InputStreamReader(in));
65          StringBuffer buffer = new StringBuffer();
66          String line = "";
67          while( (line = rdr.readLine()) != null) {
68              buffer.append(line);
69              buffer.append(System.getProperty("line.separator"));
70          }
71          return buffer.toString();
72      }
73  
74      static void closeQuietly(InputStream in) {
75          if(in != null) {
76              try {
77                  in.close();
78              } catch(IOException ioe) {
79                  ; // ignore
80              }
81          }
82      }
83  
84      static void closeQuietly(OutputStream out) {
85          if(out != null) {
86              try {
87                  out.close();
88              } catch(IOException ioe) {
89                  ; // ignore
90              }
91          }
92      }
93  
94  }