从控制台读取文件名。
将 main 方法的 System.out 对象替换为你自己的 Reader 包装类(与课程中展示的类似)。
你的 Reader 包装类必须将所有文本输出到控制台和你已读取其名称的文件。
调用 testString 的现有 printSomething() 方法。
将 System.out 变量重新恢复为原始流。
关闭文件流。
屏幕输出示例:
This is text for testing
示例文件内容:
This is text for testing
package zh.codegym.task.task19.task1915;
/*
重复文本
*/
import java.io.*;
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) {
PrintStream sOut = System.out;
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
System.setOut(new PrintStream(byteOut));
testString.printSomething();
System.setOut(sOut);
try (BufferedReader sIn = new BufferedReader(new InputStreamReader(System.in));
FileOutputStream out = new FileOutputStream(sIn.readLine(), true)
) {
System.out.print(byteOut.toString());
out.write(byteOut.toByteArray());
} catch (Exception e) {
e.printStackTrace();
}
}
public static class TestString {
public void printSomething() {
System.out.println("这是用于测试的文本");
}
}
}
Validation is :
Solution 类的 main(String[] args) 方法必须将 printSomething() 方法的输出写入控制台和文件(使用 FileOutputStream)。
--确保你的解决方案使用 FileOutputStream。