Advertisement
Adeptius

Untitled

Feb 5th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.85 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. В классе QuestionFileOutputStream при вызове метода close() должна быть реализована следующая
  8.  функциональность:
  9. 1. Вывести в консоль фразу [Вы действительно хотите закрыть поток? Д/Н]
  10. 2. Считайте строку
  11. 3. Если считанная строка равна [Д], то закрыть поток
  12. 4. Если считанная строка не равна [Д], то не закрывать поток
  13. */
  14.  
  15. public class QuestionFileOutputStream implements AmigoOutputStream {
  16.  
  17.     private AmigoOutputStream original;
  18.  
  19.     public QuestionFileOutputStream(AmigoOutputStream original) {
  20.         this.original = original;
  21.     }
  22.  
  23.     @Override
  24.     public void flush() throws IOException {
  25.         original.flush();
  26.     }
  27.  
  28.     @Override
  29.     public void write(int b) throws IOException {
  30.         original.write(b);
  31.     }
  32.  
  33.     @Override
  34.     public void write(byte[] b) throws IOException {
  35.         original.write(b);
  36.     }
  37.  
  38.     @Override
  39.     public void write(byte[] b, int off, int len) throws IOException {
  40.         original.write(b, off, len);
  41.     }
  42.  
  43.     @Override
  44.     public void close() throws IOException {
  45.  
  46.         System.out.println("Вы действительно хотите закрыть поток? Д/Н");
  47.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  48.         String s = reader.readLine();
  49.         if (s.equals("Д")){
  50.             original.close();
  51.             reader.close();
  52.         }
  53.  
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement