1 /************************************************************************
2 * Copyright (c) 2000-2006 The Apache Software Foundation. *
3 * All rights reserved. *
4 * ------------------------------------------------------------------- *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you *
6 * may not use this file except in compliance with the License. You *
7 * may obtain a copy of the License at: *
8 * *
9 * http://www.apache.org/licenses/LICENSE-2.0 *
10 * *
11 * Unless required by applicable law or agreed to in writing, software *
12 * distributed under the License is distributed on an "AS IS" BASIS, *
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or *
14 * implied. See the License for the specific language governing *
15 * permissions and limitations under the License. *
16 ***********************************************************************/
17
18 package org.apache.james.util;
19
20 import java.io.IOException;
21 import java.io.InputStream;
22
23 /***
24 * Reads data off a stream, printing every byte read to System.err.
25 */
26 public class DebugInputStream extends InputStream {
27
28 /***
29 * The input stream being wrapped
30 */
31 InputStream in = null;
32
33 /***
34 * Constructor that takes an InputStream to be wrapped.
35 *
36 * @param in the InputStream to be wrapped
37 */
38 public DebugInputStream(InputStream in) {
39 this.in = in;
40 }
41
42 /***
43 * Read a byte off the stream
44 *
45 * @return the byte read off the stream
46 * @throws IOException if an exception is encountered when reading
47 */
48 public int read() throws IOException {
49 int b = in.read();
50 System.err.write(b);
51 return b;
52 }
53
54 /***
55 * Close the stream
56 *
57 * @throws IOException if an exception is encountered when closing
58 */
59 public void close() throws IOException {
60 in.close();
61 }
62 }