Writer implementation that outputs to a StringBuilder : String « Date Type « Android






Writer implementation that outputs to a StringBuilder

    
import java.io.Serializable;
import java.io.Writer;

/**
 * {@link Writer} implementation that outputs to a {@link StringBuilder}.
 * <p>
 * <strong>NOTE:</strong> This implementation, as an alternative to
 * <code>java.io.StringWriter</code>, provides an <i>un-synchronized</i> (i.e.
 * for use in a single thread) implementation for better performance. For safe
 * usage with multiple {@link Thread}s then <code>java.io.StringWriter</code>
 * should be used.
 * 
 * ***Copied & Pasted from apache commons-io because I dont want to add too many
 * 3rd parties library to the app to keep it as small as possible***
 * 
 * @version $Revision$ $Date$
 * @since IO 2.0
 */
class StringBuilderWriter extends Writer implements Serializable {

  /**
     * 
     */
  private static final long serialVersionUID = 1L;
  private final StringBuilder builder;

  /**
   * Construct a new {@link StringBuilder} instance with default capacity.
   */
  public StringBuilderWriter() {
    this.builder = new StringBuilder();
  }

  /**
   * Construct a new {@link StringBuilder} instance with the specified
   * capacity.
   * 
   * @param capacity
   *            The initial capacity of the underlying {@link StringBuilder}
   */
  public StringBuilderWriter(int capacity) {
    this.builder = new StringBuilder(capacity);
  }

  /**
   * Construct a new instance with the specified {@link StringBuilder}.
   * 
   * @param builder
   *            The String builder
   */
  public StringBuilderWriter(StringBuilder builder) {
    this.builder = (builder != null ? builder : new StringBuilder());
  }

  /**
   * Append a single character to this Writer.
   * 
   * @param value
   *            The character to append
   * @return This writer instance
   */
  @Override
  public Writer append(char value) {
    builder.append(value);
    return this;
  }

  /**
   * Append a character sequence to this Writer.
   * 
   * @param value
   *            The character to append
   * @return This writer instance
   */
  @Override
  public Writer append(CharSequence value) {
    builder.append(value);
    return this;
  }

  /**
   * Append a portion of a character sequence to the {@link StringBuilder}.
   * 
   * @param value
   *            The character to append
   * @param start
   *            The index of the first character
   * @param end
   *            The index of the last character + 1
   * @return This writer instance
   */
  @Override
  public Writer append(CharSequence value, int start, int end) {
    builder.append(value, start, end);
    return this;
  }

  /**
   * Closing this writer has no effect.
   */
  @Override
  public void close() {
  }

  /**
   * Flushing this writer has no effect.
   */
  @Override
  public void flush() {
  }

  /**
   * Write a String to the {@link StringBuilder}.
   * 
   * @param value
   *            The value to write
   */
  @Override
  public void write(String value) {
    if (value != null) {
      builder.append(value);
    }
  }

  /**
   * Write a portion of a character array to the {@link StringBuilder}.
   * 
   * @param value
   *            The value to write
   * @param offset
   *            The index of the first character
   * @param length
   *            The number of characters to write
   */
  @Override
  public void write(char[] value, int offset, int length) {
    if (value != null) {
      builder.append(value, offset, length);
    }
  }

  /**
   * Return the underlying builder.
   * 
   * @return The underlying builder
   */
  public StringBuilder getBuilder() {
    return builder;
  }

  /**
   * Returns {@link StringBuilder#toString()}.
   * 
   * @return The contents of the String builder.
   */
  @Override
  public String toString() {
    return builder.toString();
  }
}

   
    
    
    
  








Related examples in the same category

1.Split with
2.Split first with
3.split By Space and save result to a List
4.Space trim
5.truncate by length
6.Remove all blanks
7.Is a string a Number
8.Random string
9.Tokenizer. Why? Because StringTokenizer is not available in J2ME.
10.String resource
11.Shows creating text with links from HTML in the Java code, rather than from a string resource. Note that for a
12.Join a collection of strings by a seperator
13.Tests if a string is blank: null, emtpy, or only whitespace (" ", \r\n, \t, etc)
14.Tests if a string is numeric, i.e. contains only digit characters
15.Gets the device's phone number as a String.
16.Inspects a link Configuration through reflection API to generate a human readable String with values replaced with their constants names.
17.Returns a String representation of the content of a android.view.Display object.
18.Get String Element Value
19.Join strings
20.Find two consecutive newlines in a string.
21.Retrieve a boolean primitive type from a String.
22.Trim char from string
23.Returns true if the string does not fit in standard ASCII
24.Returns true if the given string is null or empty.
25.4 octets in address string
26.Add space to CSV string
27.String fast Split
28.Split a String by a Character, i.e. Split lines by using '\n'
29.String Capitalizer
30.Count char in a string
31.Search char in a string from a starting position
32.load String From Raw Resource
33.Join Collection of String
34.Padding a string, truncate a string
35.Converts a string to title casing.
36.reversing String
37.load Resource To String
38.convert Duration to String
39.Convert string from one encoding to another
40.Object to String and String to Object
41.IP to String
42.Convert string to bumber and convert number to string
43.line string reader in J2ME
44.String to Map with token
45.Generate the client id, which is a fixed string of length 8 concatenated with 12 random bytes
46.StringBuilder Writer
47.Return a specific raw resource contents as a String value.
48.Returns the ISO 8601-format String corresponding to the given duration (measured in milliseconds).
49.Returns a string representation of the given number of nanoseconds.
50.Simple Tokenizer
51.split By Space
52.Pad Front
53.Count Occurrences
54.Padding Left
55.captalize Words
56.Tokenizer Utils
57.Returns space padding
58.Normalise Whitespace
59.Removes unwanted blank characters
60.Removes unwanted backslashes characters
61.equals Ignore Case
62.A method to decode/encode quoted printable encoded data
63.Title Name Parser
64.Split Camal Case
65.Split and combine by token
66.Shorten text for display in lists etc.