是的,Java中的System.out.println()输出可以被重定向。你可以使用System.setOut()方法将System.out重定向到一个文件或其他输出流。这里有一个简单的例子,演示如何将System.out重定向到一个文件:
import java.io.FileOutputStream;
import java.io.PrintStream;
public class RedirectSystemOut {
public static void main(String[] args) {
try {
// 创建一个文件输出流
FileOutputStream fos = new FileOutputStream("output.txt");
// 创建一个新的PrintStream对象,将输出重定向到文件
PrintStream ps = new PrintStream(fos);
// 将System.out重定向到新的PrintStream对象
System.setOut(ps);
// 现在,所有的System.out.println()调用都会被写入到output.txt文件中
System.out.println("Hello, World!");
// 关闭文件输出流和PrintStream对象
ps.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个例子中,我们首先创建了一个FileOutputStream对象,用于将输出写入到名为"output.txt"的文件。然后,我们创建了一个新的PrintStream对象,并将其与FileOutputStream关联。接下来,我们使用System.setOut()方法将System.out重定向到新的PrintStream对象。最后,我们关闭了文件输出流和PrintStream对象。
现在,当我们调用System.out.println()时,输出将被写入到"output.txt"文件中,而不是控制台。