Сложно отрицать, что код имеет пять конструкторов которые инициализируют fileWriter для записи, но валидатор это делает.
Да и всё остальное.
package com.javarush.task.task19.task1917;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileWriter;
import java.io.IOException;
/*
Свой FileWriter
*/
public class FileConsoleWriter extends FileWriter {
private FileWriter fileWriter;
public FileConsoleWriter(String fileName, FileWriter fileWriter) throws IOException {
super(fileName);
this.fileWriter = fileWriter;
}
public FileConsoleWriter(String fileName, boolean append, FileWriter fileWriter) throws IOException {
super(fileName, append);
this.fileWriter = fileWriter;
}
public FileConsoleWriter(File file, FileWriter fileWriter) throws IOException {
super(file);
this.fileWriter = fileWriter;
}
public FileConsoleWriter(File file, boolean append, FileWriter fileWriter) throws IOException {
super(file, append);
this.fileWriter = fileWriter;
}
public FileConsoleWriter(FileDescriptor fd, FileWriter fileWriter) {
super(fd);
this.fileWriter = fileWriter;
}
public void write(char[] cbuf, int off, int len) throws IOException {
fileWriter.write(cbuf, off, len);
String toConsole="";
for (int i=off; i<(off+len); i++) {
toConsole += cbuf[i];
}
System.out.println(toConsole);
}
public void write(int c) throws IOException {
fileWriter.write(c);
System.out.println((char)c);
}
public void write(String str) throws IOException {
fileWriter.write(str);
System.out.println(str);
}
public void write(String str, int off, int len) throws IOException {
fileWriter.write(str, off, len);
System.out.println(str.substring(off,(off+len)));
}
public void write(char[] cbuf) throws IOException {
fileWriter.write(cbuf);
String toConsole="";
for (int i=0; i<cbuf.length; i++) {
toConsole += cbuf[i];
}
System.out.println(toConsole);
}
public void close() throws IOException {
fileWriter.close();
}
public static void main(String[] args) {
}
}