Как добавить Multi-Thread в BufferedReader из текстового файла? - PullRequest
0 голосов
/ 12 марта 2019

Я хочу добавить многопоточный BufferedReader из текстового файла

Таким образом, это будет 2 потока из 1 текстового файла

==================

вывод:

Здравствуйте.Я Халид.

(Привет = Тема 1) (Я Халид = Тема 2)


Это мой код без потоков:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class KhalidThread  {

    public static void main(String[] args) throws IOException {
        BufferedReader bread = null;
        try{
            bread = new BufferedReader(new FileReader("C:\\k.txt"));
            String line, content="";
            while((line = bread.readLine()) !=null){
                content += line + "\r\n";
            }
            System.out.print(content);
        }
        finally{
            if(bread!=null){
                bread.close();
            }
        }
    }

}

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете попробовать сделать это:

public static void main(String[] args) throws IOException {

    BufferedReader bread = new BufferedReader(new FileReader("D:\\k.txt"));
    RunnableClass rc = new RunnableClass(bread);

    Thread t1 = new Thread(rc, "Thread1");
    Thread t2 = new Thread(rc, "Thread2");

    t1.start();
    t2.start();
}

static class RunnableClass implements Runnable {
    private BufferedReader bread = null;

    RunnableClass(BufferedReader bread) {
        this.bread = bread;
    }

    @Override
    public void run() {

        try {
            synchronized (bread) {
                String content = bread.readLine();
                System.out.println(content + " = " + Thread.currentThread().getName() );
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...