从控制台读取文件名。 将 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。