diff --git a/core-java-modules/core-java-io-5/file.txt b/core-java-modules/core-java-io-5/file.txt new file mode 100644 index 0000000000..5dd01c177f --- /dev/null +++ b/core-java-modules/core-java-io-5/file.txt @@ -0,0 +1 @@ +Hello, world! \ No newline at end of file diff --git a/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteBlockingQueue.java b/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteBlockingQueue.java index b518b455ea..ee0cc84955 100644 --- a/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteBlockingQueue.java +++ b/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteBlockingQueue.java @@ -10,23 +10,25 @@ import java.util.concurrent.LinkedBlockingQueue; public class ReadWriteBlockingQueue { - public static void main(String[] args) { - BlockingQueue queue = new LinkedBlockingQueue<>(); - String inputFileName = "src/main/resources/read_file.txt"; - String outputFileName = "src/main/resources/write_file.txt"; + public static void main(String[] args) throws InterruptedException { - Thread producerThread = new Thread(new FileProducer(queue, inputFileName)); - Thread consumerThread = new Thread(new FileConsumer(queue, outputFileName)); + BlockingQueue queue = new LinkedBlockingQueue<>(); + String readFileName = "src/main/resources/read_file.txt"; + String writeFileName = "src/main/resources/write_file.txt"; + + Thread producerThread = new Thread(new FileProducer(queue, readFileName)); + Thread consumerThread1 = new Thread(new FileConsumer(queue, writeFileName)); producerThread.start(); - consumerThread.start(); - + Thread.sleep(100); // Give producer a head start + consumerThread1.start(); try { - producerThread.join(); // Wait for producer to finish - consumerThread.join(); // Wait for consumer to finish + producerThread.join(); + consumerThread1.join(); } catch (InterruptedException e) { e.printStackTrace(); } + } } @@ -46,6 +48,8 @@ class FileProducer implements Runnable { String line; while ((line = reader.readLine()) != null) { queue.offer(line); + System.out.println("Producer added line: " + line); + System.out.println("Queue size: " + queue.size()); } } catch (IOException e) { e.printStackTrace(); @@ -70,6 +74,9 @@ class FileConsumer implements Runnable { while ((line = queue.poll()) != null) { writer.write(line); writer.newLine(); + System.out.println(Thread.currentThread() + .getId() + " - Consumer processed line: " + line); + System.out.println("Queue size: " + queue.size()); } } catch (IOException e) { e.printStackTrace(); diff --git a/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteThread.java b/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteThread.java index ba8c5547e3..47f6a79d5f 100644 --- a/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteThread.java +++ b/core-java-modules/core-java-io-5/src/main/java/com/baeldung/readwritethread/ReadWriteThread.java @@ -28,7 +28,7 @@ public class ReadWriteThread { Thread thread = new Thread(new Runnable() { @Override public void run() { - try (FileWriter fileWriter = new FileWriter("file.txt")) { + try (FileWriter fileWriter = new FileWriter(filePath)) { fileWriter.write("Hello, world!"); } catch (IOException e) { e.printStackTrace(); @@ -39,16 +39,15 @@ public class ReadWriteThread { } public static void main(String[] args) { - String readFile = "src/main/resources/read_file.txt"; - String writeFile = "src/main/resources/write_file.txt"; + String file = "src/main/resources/text.txt"; - writeFile(writeFile, "Hello, world!"); + writeFile(file, "Hello, world!"); - readFile(readFile); + readFile(file); // Sleep for a while to allow the threads to complete try { - Thread.sleep(2000); + Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/core-java-modules/core-java-io-5/src/main/resources/read_file.txt b/core-java-modules/core-java-io-5/src/main/resources/read_file.txt index 91c461855b..9193448ace 100644 --- a/core-java-modules/core-java-io-5/src/main/resources/read_file.txt +++ b/core-java-modules/core-java-io-5/src/main/resources/read_file.txt @@ -2,4 +2,4 @@ Hello, Baeldung! Nice to meet you! My name is -Wynn! \ No newline at end of file +Wynn. \ No newline at end of file diff --git a/core-java-modules/core-java-io-5/src/main/resources/text.txt b/core-java-modules/core-java-io-5/src/main/resources/text.txt new file mode 100644 index 0000000000..5dd01c177f --- /dev/null +++ b/core-java-modules/core-java-io-5/src/main/resources/text.txt @@ -0,0 +1 @@ +Hello, world! \ No newline at end of file diff --git a/core-java-modules/core-java-io-5/src/main/resources/write_file.txt b/core-java-modules/core-java-io-5/src/main/resources/write_file.txt index e69de29bb2..f1df68d0ad 100644 --- a/core-java-modules/core-java-io-5/src/main/resources/write_file.txt +++ b/core-java-modules/core-java-io-5/src/main/resources/write_file.txt @@ -0,0 +1,5 @@ +Hello, +Baeldung! +Nice to meet you! +My name is +Wynn.