У меня все работает хорошо, но валидатор жалуется на 2 пункте, что вывод не правильный на других, что не вызывается метод в fileWriter
package com.javarush.task.task19.task1917;
/*
Свой FileWriter
*/
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
public class FileConsoleWriter extends FileWriter {
private 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 FileConsoleWriter(String fileName) throws IOException {
super(fileName);
this.fileWriter = new FileWriter(fileName);
}
public static void main(String[] args) throws IOException {
/* FileConsoleWriter fcw = new FileConsoleWriter("C:\\Users\\Евгений\\Desktop\\test1.txt");
fcw.write(new char[]{'q', 'w', 'e', 'r', 't', 'y'});
fcw.write("\r\n");
fcw.write("String");
fcw.write("\r\n");
fcw.write(2_000_000_000);
fcw.write("\r\n");
fcw.write(new char[]{'q', 'w', 'e', 'r', 't', 'y', '1', '2', '3'}, 2, 4);
fcw.write("\r\n");
fcw.write("Qwerty123!", 2, 6);
fcw.close();
*/
}
@Override
public void write(int c) throws IOException {
fileWriter.write(c);
System.out.print(c);
}
@Override
public void write(char[] cbuf, int off, int len) throws IOException {
fileWriter.write(cbuf, off, len);
int longBuf = off + len;
StringBuilder stringBuilder = new StringBuilder();
for (int i = off; i < longBuf; i++) {
stringBuilder.append(cbuf[i]);
}
System.out.print(stringBuilder.toString());
}
@Override
public void write(String str, int off, int len) throws IOException {
fileWriter.write(str, off, len);
System.out.print(str.substring(off, (off + len)));
}
@Override
public void close() throws IOException {
fileWriter.close();
}
@Override
public void write(char[] cbuf) throws IOException {
fileWriter.write(cbuf);
StringBuilder stringBuilder = new StringBuilder();
for (char ch : cbuf) {
stringBuilder.append(ch);
}
System.out.print(stringBuilder.toString());
}
@Override
public void write(String str) throws IOException {
super.write(str);
}
public FileWriter getFileWriter() {
return fileWriter;
}
public void setFileWriter(FileWriter fileWriter) {
this.fileWriter = fileWriter;
}
}