miercuri, 6 iunie 2012

Thread

package pack;

import java.io.*;
import java.util.*;

public class fileWriterThread extends Thread {
    BufferedWriter bw;
    BufferedReader br;

    public fileWriterThread(BufferedWriter bw, BufferedReader br) {
        this.bw = bw;
        this.br = br;
    }

    public void run() {
        try {
            while (br.ready()) {
                String readln = br.readLine();
                StringTokenizer st = new StringTokenizer(readln," ");
                while (st.hasMoreTokens()) {
                    synchronized (bw) {
                        bw.write(st.nextToken() + '\n');
                    }
                }
            }
            br.close();
        } catch (IOException ioe) {
            System.out.println(ioe.getMessage());
        }
       
    }
   
   

    public static void main(String[] args) {
        try {
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(new File("writeme"))));
            fileWriterThread th1 = new fileWriterThread(bw, new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream(new File("first")))));
            fileWriterThread th2 = new fileWriterThread(bw, new BufferedReader(
                    new InputStreamReader(new FileInputStream(
                            new File("second")))));
            fileWriterThread th3 = new fileWriterThread(bw, new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream(new File("third")))));
            th1.start();
            th2.start();
            th3.start();
           

            while (th1.isAlive() || th2.isAlive() || th3.isAlive()) {
                sleep(100);
            }
            System.out.println("Finished");
           
            bw.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

Niciun comentariu:

Trimiteți un comentariu