Avatar billede jespersahner Nybegynder
27. august 2005 - 14:19 Der er 5 kommentarer og
1 løsning

PrintStream ud fra PrintWriter

Jeg ønsker at anvende System.out.println() til at udskrive et PrintWriter-objekt.

Hertil har jeg brug for at omdirigere output til System.out vha. System.out.setOut(PrintStream out). Jeg har altså brug for et PrintStream-objekt.

Hvordan får jeg "konverteret" mit PrintWriter-objekt til et PrintStream-objekt, således at System.out.println() vil udskrive PrintWriter-objektet?
Avatar billede arne_v Ekspert
27. august 2005 - 14:54 #1
Jeg tvivler på at det kan lade sig gøre. OutputStream og Writer er forskellige
grene i java.io.

Hvorfor har du en PrintWriter ?
Avatar billede jespersahner Nybegynder
27. august 2005 - 14:59 #2
->arne_v: Jeg skriver et plug-in modul i en større applikation, hvor jeg får stillet et PrintWriter-objekt til rådighed. Udskrivning i applikationen foregår vha. dette objekt.

Mit problem er, at jeg anvender dynamisk class-loading, hvor de klasser jeg loader meget vel kan indeholde System.out.println(), hvorfor jeg har brug for at omdirigere til PrintWriter-objektet på en eller anden måde.
Avatar billede arne_v Ekspert
27. august 2005 - 15:05 #3
problem !

workaround:

setOut til en ByteArrayOutputStream
kald whatever
kopier fra ByteArrayOutputStream til PrintWriter

pæn løsning:

drop System.out.println
brug et logging framework
Avatar billede jespersahner Nybegynder
27. august 2005 - 15:17 #4
->arne_v: Hmm..jeg er nok nødt til at prøve den første løsning, idet jeg som sagt load'er klasser indeholdende Syste.out.println()-statements. Jeg kan derfor dårligt droppe disse. Men din workaround er vel rigtig, som jeg ser det. Jeg vender lige tilbage, når jeg har prøvet det af.
Avatar billede jespersahner Nybegynder
07. september 2005 - 16:20 #5
->arne_v: Smid gerne et svar.
Avatar billede arne_v Ekspert
07. september 2005 - 16:22 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester