/** * Constructor. * * @param writer * The wrapped writer. * @param characterSet * The character set. Use {@link CharacterSet#ISO_8859_1} by * default if a null value is given. */ public WriterOutputStream(Writer writer, CharacterSet characterSet) { this.writer = writer; this.charSet = (characterSet == null) ? Charset.forName("ISO-8859-1") : characterSet.toCharset(); }
/** * Returns a writer to the given output stream, using the given character * set for encoding to bytes. * * @param outputStream * The target output stream. * @param characterSet * The character set for encoding. * @return The wrapping writer. */ public static Writer getWriter(OutputStream outputStream, CharacterSet characterSet) { Writer result = null; if (characterSet != null) { result = new OutputStreamWriter(outputStream, characterSet.toCharset()); } else { // Use the default HTTP character set result = new OutputStreamWriter(outputStream, CharacterSet.ISO_8859_1.toCharset()); } return result; }
@Override protected final void onContent(InputStream inputStream) { InputStreamReader isr = new InputStreamReader(inputStream, this.characterSet.toCharset()); onContent(isr); }
@Override protected final void onContent(InputStream inputStream) { InputStreamReader isr = new InputStreamReader(inputStream, this.characterSet.toCharset()); onContent(isr); }
/** * Constructor. * * @param reader * The reader to wrap as an input stream. * @param characterSet * The character set to use for encoding. * @throws IOException */ public ReaderInputStream(Reader reader, CharacterSet characterSet) throws IOException { this.byteBuffer = ByteBuffer.allocate(1024); this.byteBuffer.flip(); this.charBuffer = CharBuffer.allocate(1024); this.charBuffer.flip(); this.charsetEncoder = (characterSet == null) ? CharacterSet.ISO_8859_1 .toCharset().newEncoder() : characterSet.toCharset() .newEncoder(); this.endReached = false; this.reader = (reader instanceof BufferedReader) ? (BufferedReader) reader : new BufferedReader(reader, IoUtils.BUFFER_SIZE); }
@Override public String getText() throws IOException { buffer(); if (getBuffer() != null) { return (getCharacterSet() != null) ? new String(getBuffer(), getCharacterSet().toCharset().name()) : new String(getBuffer()); } return null; }