Уже добавил в код пяток излишних кмк строк, но валидатор по прежнему не желает принимать :(
Кстати, может подскажете, как закрыть BufferedReader на который нет ссылки? то есть
FileInputStream fis = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
Насколько мне известно, достаточно закрыть fis и все будет ок, но валидатор всегда заставляет закрывать отдельно.
И кстати вот еще не пойму, если закомментировать строку 24, текст 2 раза выводится на экран, а в файл нет, хотя переменная printStream уже вроде как указывает на другой поток, тоже не могу понять почему так.
package com.javarush.task.task19.task1915;
/*
Дублируем текст
*/
import java.io.*;
public class Solution
{
public static TestString testString = new TestString();
public static void main(String[] args) throws Exception
{
PrintStream trueOut = System.out;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(bos);
System.setOut(printStream);
testString.printSomething();
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String fileName = bf.readLine();
FileOutputStream fos = new FileOutputStream(fileName);
printStream = new PrintStream(fos);
System.setOut(printStream);
testString.printSomething();
bf.close();
fos.close();
System.setOut(trueOut);
System.out.println(bos.toString());
}
public static class TestString
{
public void printSomething()
{
System.out.println("it's a text for testing");
}
}
}