Avatar billede grave Nybegynder
22. maj 2003 - 17:55 Der er 2 kommentarer og
2 løsninger

Thread output

Jeg har en klasse (Klasse1) der starter en ny Thread på en anden klasse (Klasse2), som kommer med noget output til stdout,
hvordan kan jeg fange outputtet fra Klasse2 i Klasse1 ?
Avatar billede disky Nybegynder
22. maj 2003 - 18:03 #1
ja ved at sende det til klasse1, eller medgive klasse2 en outputstrem instantieret i klasse1 og udskrive til den
Avatar billede arne_v Ekspert
22. maj 2003 - 18:23 #2
Hvis du har kontrol over klasse2 så bruger du bare Diskys
råd.

Ellers laver du et hack som:

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

public class TT {
    public static void main(String[] args) {
        try {
            PrintStream save = System.out;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            PrintStream pw = new PrintStream(baos);
            System.setOut(pw);
            T t = new T();
            t.start();
            t.join();
            System.setOut(save);
            pw.flush();
            System.out.println("from thread: " + baos.toString());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

class T extends Thread {
    public void run() {
        System.out.println("Hello world");
    }
}
Avatar billede arne_v Ekspert
02. juni 2003 - 20:13 #3
grave>

Er du kommet videre ?
Avatar billede grave Nybegynder
03. juni 2003 - 18:01 #4
Ja sorry..
Jeg fandt sourcen og rettede den til
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