KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > cvsclient > util > ByteArray


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.lib.cvsclient.util;
21
22 /**
23  * The growable array of bytes.
24  * This class in not thread safe.
25  *
26  * @author Martin Entlicher
27  */

28 public class ByteArray extends Object JavaDoc {
29
30     private byte[] bytesBuffer;
31     private int length;
32
33     /** Creates a new instance of ByteArray */
34     public ByteArray() {
35         bytesBuffer = new byte[50];
36         length = 0;
37     }
38
39     /**
40      * Add a byte to the byte array.
41      */

42     public void add(byte b) {
43         if (bytesBuffer.length <= length) {
44             byte[] newBytesBuffer = new byte[length + length/2];
45             System.arraycopy(bytesBuffer, 0, newBytesBuffer, 0, bytesBuffer.length);
46             bytesBuffer = newBytesBuffer;
47         }
48         bytesBuffer[length++] = b;
49     }
50     
51     /**
52      * Get the array of bytes.
53      */

54     public byte[] getBytes() {
55         byte[] bytes = new byte[length];
56         System.arraycopy(bytesBuffer, 0, bytes, 0, length);
57         return bytes;
58     }
59     
60     /**
61      * Get the String representation of bytes in this array. The bytes are
62      * decoded using the platform's default charset.
63      */

64     public String JavaDoc getStringFromBytes() {
65         return new String JavaDoc(bytesBuffer, 0, length);
66     }
67     
68     /**
69      * Reset the byte array to zero length.
70      */

71     public void reset() {
72         length = 0;
73     }
74 }
75
Popular Tags