StringInputStream StringOutputStream

Nach einigen Überlegungen und Tests sind mir meine alten StringBufferInputStream und StringBufferOutputStream Konstrukte von ein paar Posts früher irgenwie buggy vorgekommen. Vor allem gab und gibts Schwierigkeiten mit Sonderzeichen – dieses Thema hatte ich bis heute eigentlich total ignoriert.

Nunja, aufgeben darf man ja nie – daher hab ich einen neuen Ansatz versucht, der besser funktioniert – und man muss auch nicht mehr den Umweg über einen StringBuffer machen.

import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;

public class StringInputStream extends InputStream {

    StringReader stringReader;

    public StringInputStream(String string) {
        this.stringReader = new StringReader(string);
    }

    @Override
    public int read() throws IOException {
        return stringReader.read();
    }
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringWriter;

public class StringOutputStream extends OutputStream {

    StringWriter stringWriter;

    public StringOutputStream() {
        this.stringWriter = new StringWriter();
    }

    @Override
    public String toString() {
        return stringWriter.toString();
    }

    public StringBuffer toStringBuffer() {
        return stringWriter.getBuffer();
    }

    @Override
    public void write(int b) throws IOException {
        this.stringWriter.write(b);
    }
}

Einfache Tests mit Umlauten und Sonderzeichen sind erfolgreich gelaufen, ich denke aber ein paar kleinere Optimierungsmöglichkeiten bleiben mir immer noch 🙂

1 Gedanke zu “StringInputStream StringOutputStream”

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.