2012-05-27 12 views
7

Czy istnieje sposób konwersji PrintStream na PrintWriter (lub na odwrót) inny niż przy użyciu WriterOutputStream, który jest często używany w Apache?Konwersja PrintStream do PrintWriter

+0

Nie możesz użyć opcji wrap PrintStream w PrintWriter? – nhahtdh

+0

Jaki jest twój cel? –

+0

moim celem jest konwersja strumienia wydruku do pisarza druku i NIE dodawanie pliku apache.jar do mojego kodu. – MBZ

Odpowiedz

10

Aby przekonwertować PrintStream do PrintWriter, użyć konstruktora: PrintWriter(OutputStream out)

Z tego konstruktora, ryzykujesz uzyskanie niepoprawne kodowanie, ponieważ PrintStream ma kodowanie, ale stosując PrintWriter(OutputStream out) ignoruje to i tak używa domyślnego kodowania systemu. Jeśli nie chcesz domyślnego systemu, trzeba będzie zachować kodowanie w osobnym polu lub zmiennej i zastosowanie:

pw = new PrintWriter(new OutputStreamWriter(myPrintStream, encoding)); 

Gdzie encoding mogą być (na przykład) "UTF-8" lub instancją Charset.

+1

You może udawać "System.out.println()' przez 'pw = new PrintWriter (System.out);' –