我一直在尝试将此代码的输出打印在.txt文件上,但是我将一个空文件作为输出,但是我在控制台中看到了正确的结果,所以问题在于StreamWriter我想。
那么我做错了什么?
.
答案 0 :(得分:0)
刷新并关闭流。可能是在将数据刷新到磁盘之前程序结束的情况。请注意,较高级别的流维护缓冲区,因此不能直接写入磁盘。
答案 1 :(得分:0)
我没有看到你在文件中写任何东西。我只是看到你如何创建一个文件的PrintStream并将其分配给System.out,但是你不打印任何东西。在您退出后调用generateHierarchy()
答案 2 :(得分:-1)
您尝试通过重定向System.out来编写文件,但只有在将数据写入System.out后才重定向。
你应该做的事情如下:
void printHierarchy(PrintStream ps) {
...
ps.println(...)
}
并在main()中:
try (PrintStream ps = new PrintStream(new FileOutputStream("output.txt"))) {
printHierarchy(ps);
}