//package com.thoughtworks.xstream.core.util;
import java.io.IOException;
import java.io.Writer;
public class QuickWriter {
private final Writer writer;
private char[] buffer;
private int pointer;
public QuickWriter(Writer writer) {
this(writer, 1024);
}
public QuickWriter(Writer writer, int bufferSize) {
this.writer = writer;
buffer = new char[bufferSize];
}
public void write(String str) {
int len = str.length();
if (pointer + len >= buffer.length) {
flush();
if (len > buffer.length) {
raw(str.toCharArray());
return;
}
}
str.getChars(0, len, buffer, pointer);
pointer += len;
}
public void write(char c) {
if (pointer + 1 >= buffer.length) {
flush();
}
buffer[pointer++] = c;
}
public void write(char[] c) {
int len = c.length;
if (pointer + len >= buffer.length) {
flush();
if (len > buffer.length) {
raw(c);
return;
}
}
System.arraycopy(c, 0, buffer, pointer, len);
pointer += len;
}
public void flush() {
try {
writer.write(buffer, 0, pointer);
pointer = 0;
writer.flush();
} catch (IOException e) {
System.out.println(e);
}
}
public void close() {
try {
writer.write(buffer, 0, pointer);
pointer = 0;
writer.close();
} catch (IOException e) {
System.out.println(e);
}
}
private void raw(char[] c) {
try {
writer.write(c);
writer.flush();
} catch (IOException e) {
System.out.println(e);
}
}
}