Advertisement
jaVer404

level16.lesson13.home10

Sep 21st, 2015
516
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.45 KB | None | 0 0
  1. package com.javarush.test.level16.lesson13.home10;
  2.  
  3. import java.io.*;
  4.  
  5. /* Последовательный вывод файлов
  6. 1. Разберись, что делает программа.
  7. 2. В статическом блоке считай 2 имени файла firstFileName и secondFileName.
  8. 3. Внутри класса Solution создай нить public static ReadFileThread, которая реализует
  9. интерфейс ReadFileInterface (Подумай, что больше подходит - Thread или Runnable).
  10. 3.1. Метод setFileName должен устанавливать имя файла, из которого будет читаться содержимое.
  11. 3.2. Метод getFileContent должен возвращать содержимое файла.
  12. 3.3. В методе run считай содержимое файла, закрой поток. Раздели пробелом строки файла.
  13. 4. Подумай, в каком месте нужно подождать окончания работы нити, чтобы обеспечить последовательный вывод файлов.
  14. 4.1. Для этого добавь вызов соответствующего метода.
  15. Ожидаемый вывод:
  16. [все тело первого файла]
  17. [все тело второго файла]
  18. */
  19.  
  20. public class Solution {
  21.     public static String firstFileName;
  22.     public static String secondFileName;
  23. /*------------------------------------------*/
  24.     static {
  25.     try
  26.     {
  27.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  28.         firstFileName = bufferedReader.readLine();
  29.         secondFileName = bufferedReader.readLine();
  30.     }
  31.     catch (IOException e) {}
  32. }
  33.  
  34.     public static void main(String[] args) throws InterruptedException {
  35.  
  36.         systemOutPrintln(firstFileName);
  37.         systemOutPrintln(secondFileName);
  38.     }
  39.  
  40. /*--------------------------------------------------*/
  41.  
  42.     public static void systemOutPrintln(String fileName) throws InterruptedException {
  43.         ReadFileInterface f = new ReadFileThread();
  44.         f.setFileName(fileName);
  45.         f.start();
  46.         f.join();
  47.         try
  48.         {
  49.             System.out.println(f.getFileContent());
  50.         } catch (IOException e) {}
  51.  
  52.     }
  53. /*-------------------------------------------------*/
  54.  
  55.     public interface ReadFileInterface {
  56.  
  57.         void setFileName(String fullFileName);
  58.  
  59.         String getFileContent()throws IOException;
  60.  
  61.         void join() throws InterruptedException;
  62.  
  63.         void start();
  64.     }
  65. /*---------------------------------------------------*/
  66.     public static class ReadFileThread extends Thread implements ReadFileInterface
  67. {
  68.     private String fileName = null;
  69.     private String content = "";
  70.  
  71.     @Override
  72.     public void run()
  73.     {
  74.         try
  75.         {
  76.             File file = new File(fileName);
  77.             BufferedReader reader = new BufferedReader(new FileReader(file));
  78.             String line;
  79.  
  80.             while ((line = reader.readLine()) != null)
  81.             {
  82.                 content = content + line + " ";
  83.             }
  84.             reader.close();
  85.         }
  86.         catch (Exception e) {}
  87.     }
  88.  
  89.     public void setFileName(String fullFileName)
  90.     {
  91.         this.fileName = fullFileName;
  92.     }
  93.  
  94.     public String getFileContent() throws IOException
  95.     {
  96.         return content;
  97.     }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement