Advertisement
Guest User

Untitled

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