//Now may the God of hope fill you with all joy and peace in believing, that you may abound in hope, in the power of the Holy Spirit. (Romans 15:13) package com.javarush.task.task16.task1630; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class Solution { public static String firstFileName; public static String secondFileName; static {//add your code here - добавÑÑе код ÑÑÑ try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))){ firstFileName = br.readLine(); secondFileName = br.readLine(); }catch(IOException e) {e.printStackTrace();} } public static void main(String[] args) throws InterruptedException { systemOutPrintln(firstFileName); systemOutPrintln(secondFileName); } public static void systemOutPrintln(String fileName) throws InterruptedException { ReadFileInterface f = new ReadFileThread(); f.setFileName(fileName); f.start(); f.join();//add your code here - добавÑÑе код ÑÑÑ System.out.println(f.getFileContent()); } public interface ReadFileInterface { void setFileName(String fullFileName); String getFileContent(); void join() throws InterruptedException; void start(); } public static class ReadFileThread extends Thread implements ReadFileInterface {//add your code here - добавÑÑе код ÑÑÑ private String fileName; private String result = ""; @Override public void setFileName (String fullFileName) { fileName = fullFileName; } @Override public String getFileContent() { return result; } @Override public void run() { try (BufferedReader fileReader = new BufferedReader (new FileReader(fileName))) { while (fileReader.ready()) { result += fileReader.readLine() + " "; } }catch(IOException e) {e.printStackTrace();} } } } /* ÐоÑледоваÑелÑнÑй вÑвод Ñайлов 1. РазбеÑиÑÑ, ÑÑо Ð´ÐµÐ»Ð°ÐµÑ Ð¿ÑогÑамма. 2. Ð ÑÑаÑиÑеÑком блоке ÑÑиÑай 2 имени Ñайла firstFileName и secondFileName. 3. ÐнÑÑÑи клаÑÑа Solution Ñоздай ниÑÑ public static ReadFileThread, коÑоÑÐ°Ñ ÑеализÑÐµÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ ReadFileInterface (ÐодÑмай, ÑÑо болÑÑе Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ â Thread или Runnable). 3.1. ÐеÑод setFileName должен ÑÑÑанавливаÑÑ Ð¸Ð¼Ñ Ñайла, из коÑоÑого бÑÐ´ÐµÑ ÑиÑаÑÑÑÑ ÑодеÑжимое. 3.2. ÐеÑод getFileContent должен возвÑаÑаÑÑ ÑодеÑжимое Ñайла. 3.3. РмеÑоде run ÑÑиÑай ÑодеÑжимое Ñайла, закÑой поÑок. Раздели пÑобелом ÑÑÑоки Ñайла. 4. ÐодÑмай, в каком меÑÑе нÑжно подождаÑÑ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑабоÑÑ Ð½Ð¸Ñи, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÐµÑпеÑиÑÑ Ð¿Ð¾ÑледоваÑелÑнÑй вÑвод Ñайлов. 4.1. ÐÐ»Ñ ÑÑого Ð´Ð¾Ð±Ð°Ð²Ñ Ð²Ñзов ÑооÑвеÑÑÑвÑÑÑего меÑода. ÐжидаемÑй вÑвод: [вÑе Ñело пеÑвого Ñайла] [вÑе Ñело вÑоÑого Ñайла] ТÑебованиÑ: 1.âСÑаÑиÑеÑкий блок клаÑÑа Solution должен ÑÑиÑÑваÑÑ Ñ ÐºÐ¾Ð½Ñоли имена двÑÑ Ñайлов и ÑÐ¾Ñ ÑанÑÑÑ Ð¸Ñ Ð² пеÑеменнÑе firstFileName и secondFileName. 2.âÐбÑÑви в клаÑÑе Solution public static клаÑÑ ReadFileThread. 3.âÐлаÑÑ ReadFileThread должен ÑеализовÑваÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ ReadFileInterface. 4.âÐлаÑÑ ReadFileThread должен бÑÑÑ ÑнаÑледован Ð¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑего клаÑÑа. 5.âÐеÑод run клаÑÑа ReadFileThread должен ÑÑиÑÑваÑÑ ÑÑÑоки из Ñайла, ÑÑÑановленного меÑодом setFileName. РмеÑод getFileContent, ÑÑого же клаÑÑа, должен возвÑаÑаÑÑ Ð²ÑÑиÑаннÑй конÑенÑ. ÐозвÑаÑаемое знаÑение - ÑÑо одна ÑÑÑока, ÑоÑÑоÑÑÐ°Ñ Ð¸Ð· ÑÑÑок Ñайла, ÑазделеннÑÑ Ð¿Ñобелами. 6.âÐеÑод systemOutPrintln должен вÑзÑваÑÑ Ð¼ÐµÑод join Ñ Ñозданного обÑекÑа f. 7.âÐÑвод пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑоÑÑоÑÑÑ Ð¸Ð· 2Ñ ÑÑÑок. ÐÐ°Ð¶Ð´Ð°Ñ ÑÑÑока - ÑодеÑжимое одного Ñайла. package com.javarush.task.task16.task1630; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class Solution { public static String firstFileName; public static String secondFileName; //add your code here - добавÑÑе код ÑÑÑ public static void main(String[] args) throws InterruptedException { systemOutPrintln(firstFileName); systemOutPrintln(secondFileName); } public static void systemOutPrintln(String fileName) throws InterruptedException { ReadFileInterface f = new ReadFileThread(); f.setFileName(fileName); f.start(); //add your code here - добавÑÑе код ÑÑÑ System.out.println(f.getFileContent()); } public interface ReadFileInterface { void setFileName(String fullFileName); String getFileContent(); void join() throws InterruptedException; void start(); } //add your code here - добавÑÑе код ÑÑÑ } */