Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedWriter;
- import java.io.BufferedReader;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class MultiThreadHW {
- public static void main(String[] args) {
- int numberOfFiles = extra.Console.readInt("How many files do you want (1-10)? ");
- while (numberOfFiles < 1 || numberOfFiles > 10) {
- numberOfFiles = extra.Console.readInt("Invalid answer, choose a number between 1 and 10 ");
- }
- createFiles(numberOfFiles);
- long sumOfRowsFromAllFiles = 0;
- List<FileThread> filethreads = new ArrayList<>();
- try {
- for (int i = 0; i < numberOfFiles; i++) {
- filethreads.add(new FileThread(new FileReader("C:\\workspace\\MultiThreadHW\\text" + i + ".txt")));
- filethreads.get(i).start();
- }
- for (int i = 0; i < numberOfFiles; i++) {
- filethreads.get(i).join();
- sumOfRowsFromAllFiles += filethreads.get(i).getNumberOfRows();
- }
- System.out.println("The number of rows in all files is: " + sumOfRowsFromAllFiles);
- } catch (FileNotFoundException ex) {
- Logger.getLogger(MultiThreadHW.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(MultiThreadHW.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- public static void createFiles(int numberOfFiles) {
- int i = 0;
- int randomNumber;
- while (i < numberOfFiles) {
- try {
- randomNumber = (int) (Math.random() * numberOfFiles + 1);
- BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\workspace\\MultiThreadHW\\text" + i + ".txt"));
- for (int j = 1; j <= 100000 + randomNumber; j++) {
- writer.write(j + ". Line.");
- writer.newLine();
- }
- writer.close();
- } catch (FileNotFoundException ex) {
- Logger.getLogger(MultiThreadHW.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex) {
- Logger.getLogger(MultiThreadHW.class.getName()).log(Level.SEVERE, null, ex);
- }
- i++;
- }
- }
- }
- public class FileThread extends Thread {
- private BufferedReader reader;
- private int numberOfRows;
- public FileThread(FileReader fileReader) {
- this.reader = new BufferedReader(fileReader);
- numberOfRows = 0;
- }
- public int getNumberOfRows() {
- return numberOfRows;
- }
- @Override
- public void run() {
- try {
- while (reader.readLine() != null) {
- numberOfRows++;
- }
- reader.close();
- } catch (IOException ex) {
- Logger.getLogger(MultiThreadHW.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement