Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level16.lesson13.home10;
- import java.io.*;
- /* Последовательный вывод файлов
- 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. Для этого добавь вызов соответствующего метода.
- Ожидаемый вывод:
- [все тело первого файла]
- [все тело второго файла]
- */
- public class Solution {
- public static String firstFileName;
- public static String secondFileName;
- /*------------------------------------------*/
- static {
- try
- {
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
- firstFileName = bufferedReader.readLine();
- secondFileName = bufferedReader.readLine();
- }
- catch (IOException e) {}
- }
- 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();
- try
- {
- System.out.println(f.getFileContent());
- } catch (IOException e) {}
- }
- /*-------------------------------------------------*/
- public interface ReadFileInterface {
- void setFileName(String fullFileName);
- String getFileContent()throws IOException;
- void join() throws InterruptedException;
- void start();
- }
- /*---------------------------------------------------*/
- public static class ReadFileThread extends Thread implements ReadFileInterface
- {
- private String fileName = null;
- private String content = "";
- @Override
- public void run()
- {
- try
- {
- File file = new File(fileName);
- BufferedReader reader = new BufferedReader(new FileReader(file));
- String line;
- while ((line = reader.readLine()) != null)
- {
- content = content + line + " ";
- }
- reader.close();
- }
- catch (Exception e) {}
- }
- public void setFileName(String fullFileName)
- {
- this.fileName = fullFileName;
- }
- public String getFileContent() throws IOException
- {
- return content;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement