Всем привет
Прошу вашей помощи, с одной стороны тема вроде бы простейшая, но очередной раз я не пойму как еще он должен делегировать?
Ненавижу задачи которые не могу сам проверить...
В общем валидатор говорит:
1. Метод close() не делегирует свое выполнение классу FileOutputStream.
2. Метод close() не вызывает flush() у объекта FileOutputStream.
Что я опять сделал не так?
package com.javarush.task.task18.task1813;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
AmigoOutputStream
*/
public class AmigoOutputStream extends FileOutputStream{
public static String fileName = "D:\\Lesson\\Java\\Files\\result.txt";
String str = "JavaRush © All rights reserved.";
byte[] str2 = str.getBytes();
private FileOutputStream fileOutputStream;
public AmigoOutputStream(FileOutputStream fileOutput) throws FileNotFoundException {
super(fileName);
this.fileOutputStream = fileOutput;
}
@Override
public void close() throws IOException {
fileOutputStream.flush();
System.out.println(str2.length);
write(str2,0,str2.length);
this.fileOutputStream.close();
}
@Override
public void flush() throws IOException{
this.fileOutputStream.flush();
}
@Override
public void write(byte b[]) throws IOException{
this.fileOutputStream.write(b);
}
@Override
public void write(byte[] b, int off, int len) throws IOException{
this.fileOutputStream.write(b,off,len);
}
@Override
public void write(int b) throws IOException{
this.fileOutputStream.write(b);
}
public static void main(String[] args) throws FileNotFoundException {
new AmigoOutputStream(new FileOutputStream(fileName));
}
}