KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > io > DataBufferOutputStream


1 /* ************************************************************************** *
2  * Copyright (C) 2004 NightLabs GmbH, Marco Schulze *
3  * All rights reserved. *
4  * http://www.NightLabs.de *
5  * *
6  * This program and the accompanying materials are free software; you can re- *
7  * distribute it and/or modify it under the terms of the GNU General Public *
8  * License as published by the Free Software Foundation; either ver 2 of the *
9  * License, or any later version. *
10  * *
11  * This module is distributed in the hope that it will be useful, but WITHOUT *
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FIT- *
13  * NESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more *
14  * details. *
15  * *
16  * You should have received a copy of the GNU General Public License along *
17  * with this module; if not, write to the Free Software Foundation, Inc.: *
18  * 59 Temple Place, Suite 330 *
19  * Boston MA 02111-1307 *
20  * USA *
21  * *
22  * Or get it online: *
23  * http://www.opensource.org/licenses/gpl-license.php *
24  * *
25  * In case, you want to use this module or parts of it in a proprietary pro- *
26  * ject, you can purchase it under the NightLabs Commercial License. Please *
27  * contact NightLabs GmbH under info AT nightlabs DOT com for more infos or *
28  * visit http://www.NightLabs.com *
29  * ************************************************************************** */

30
31 package com.nightlabs.io;
32
33 import java.io.*;
34 import java.io.IOException JavaDoc;
35
36 /**
37  * An OutputStream that writes to a {@link com.nightlabs.io.DataBuffer}.
38  * @author Marco Schulze
39  */

40 public class DataBufferOutputStream extends OutputStream
41 {
42   DataBuffer dataBuffer;
43
44   protected DataBufferOutputStream(DataBuffer _dataBuffer)
45   {
46     this.dataBuffer = _dataBuffer;
47   }
48
49   protected boolean closed = false;
50
51   public void close()
52   throws IOException JavaDoc
53   {
54     if (closed)
55       return;
56
57     dataBuffer.closeOutputStream();
58     closed = true;
59   }
60
61   public void flush()
62   throws IOException JavaDoc
63   {
64     if (closed)
65       throw new IOException JavaDoc("OutputStream is already closed!");
66
67     dataBuffer.flushOutputStream();
68   }
69
70   public void write(byte[] b)
71   throws java.io.IOException JavaDoc
72   {
73     if (closed)
74       throw new IOException JavaDoc("OutputStream is already closed!");
75
76     dataBuffer.write(b, 0, b.length);
77   }
78
79   public void write(byte[] b, int off, int len)
80   throws IOException JavaDoc
81   {
82     if (closed)
83       throw new IOException JavaDoc("OutputStream is already closed!");
84
85     dataBuffer.write(b, off, len);
86   }
87
88   byte[] oneByteByteArray = null;
89
90   public void write(int b)
91   throws java.io.IOException JavaDoc
92   {
93     if (closed)
94       throw new IOException JavaDoc("OutputStream is already closed!");
95
96     if (oneByteByteArray == null)
97       oneByteByteArray = new byte[1];
98
99     oneByteByteArray[0] = (byte)b;
100     dataBuffer.write(oneByteByteArray, 0, 1);
101   }
102
103 }
Popular Tags