Advertisement
jaVer404

level18.lesson08.task02_done

Nov 4th, 2015
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. package com.javarush.test.level18.lesson08.task02;
  2.  
  3. import java.io.*;
  4.  
  5. /* Расширяем AmigoOutputStream
  6. Используя шаблон проектирования Wrapper (Decorator) расширьте функциональность AmigoOutputStream
  7.  
  8. В классе QuestionFileOutputStream при вызове метода close() должна быть реализована следующая функциональность:
  9. 1. Вывести в консоль фразу [Вы действительно хотите закрыть поток? Д/Н]
  10. 2. Считайте строку
  11. 3. Если считанная строка равна [Д], то закрыть поток
  12. 4. Если считанная строка не равна [Д], то не закрывать поток
  13. */
  14.  
  15. public class QuestionFileOutputStream implements AmigoOutputStream {
  16.     private AmigoOutputStream original;
  17.  
  18.     public QuestionFileOutputStream(AmigoOutputStream original)
  19.     {
  20.         this.original = original;
  21.     }
  22.  
  23.  
  24.     public void close() throws IOException
  25.     {
  26.         System.out.println("Вы действительно хотите закрыть поток? Д/Н");
  27.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  28.         String userInput = reader.readLine();
  29.         reader.close();
  30.         if (userInput.equals("Д")) {
  31.             original.close();
  32.         }
  33.     }
  34.     public void flush() throws IOException {
  35.         original.flush();
  36.     }
  37.  
  38.     public void write(int b) throws IOException{
  39.         original.write(b);
  40.     }
  41.  
  42.  
  43.     public void write(byte[] b) throws IOException{
  44.         original.write(b);
  45.     }
  46.  
  47.     public void write(byte[] b, int off, int len) throws IOException{
  48.         original.write(b,off,len);
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement