第一个Java程序(将排列写入文件)
我试图在文本文件中重复编写组合,问题是我试图在不了解java内部工作原理的情况下将一些代码拼凑在一起。当我重新排列代码时,我真的不确定我在影响什么
import java.io.*;
public class Main {
public static void main(String args[]) {
brute("123", 3, new StringBuffer());
}
static void brute(String input, int depth, StringBuffer output) {
if (depth == 0) {
// System.out.println(output);
{
try{
// Create file
FileWriter fstream = new FileWriter("out.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write("blah" + output);}
else {
for (int i = 0; i < input.length(); i++) {
output.append(input.charAt(i));
brute(input, depth - 1, output);
output.deleteCharAt(output.length() - 1);
}
}
}
}
}
任何帮助都将不胜感激
# 1 楼答案
我猜问题是,在运行应用程序结束时,您会得到一个空文件
你应该简化写代码的部分:
你每次打开一个文件并把它写出来。这没关系(最好将其写入已打开的流),但不需要创建
BufferedWriter
,并且可以进一步简化代码如果你运行这段代码,你仍然会发现它不起作用,只会在磁盘上生成一个空文件。重要的是在使用后关闭。将上述内容更改为:
似乎可以让程序正常工作(代码中有一些语法错误,比如忘记捕获/抛出已检查的异常,但我认为这只是因为代码是手动复制的)
关于如何进一步整理的建议:
finally
确保您的文件始终处于关闭状态,即使在出现异常的情况下也是如此