Java 使用PrintWriter无法输出到文件

Java 使用PrintWriter无法输出到文件,java,printwriter,Java,Printwriter,我没有得到编译错误,但是我的代码没有向保存的文件输出任何内容。代码确实创建了文件,但它们是空的。有人知道我做错了什么吗 public class CellAutomataTest { public static void main(String[] args) { int rule = 120;//Integer.parseInt(args[0]); int numGen = 5;//Integer.parseInt(args[1]); String fileSt

我没有得到编译错误,但是我的代码没有向保存的文件输出任何内容。代码确实创建了文件,但它们是空的。有人知道我做错了什么吗

public class CellAutomataTest {
  public static void main(String[] args)
  {
    int rule = 120;//Integer.parseInt(args[0]);
    int numGen = 5;//Integer.parseInt(args[1]);
    String fileStem = "ca";//args[2];
    int width = 400;//Integer.parseInt(args[3]);
    int height = 400;//Integer.parseInt(args[4]);

    CellAutomata test = new CellAutomata(numGen, rule);

    PrintWriter writer = null;
    try {
        writer = new PrintWriter(new FileWriter(fileStem + ".js"));
    } catch (IOException ex) {
        Logger.getLogger(CellAutomataTest.class.getName()).log(Level.SEVERE, null, ex);
    }
    PrintWriter writer2 = null;
    try {
        writer2 = new PrintWriter(new FileWriter(fileStem + ".html"));
    } catch (IOException ex) {
        Logger.getLogger(CellAutomataTest.class.getName()).log(Level.SEVERE, null, ex);
    }

    writer.println("function draw() {");
    writer.println("var canvas = document.getElementById('CellAutomata');");
    writer.println("if (canvas && canvas.getContext) {");
    writer.println("var context = canvas.getContext('2d');");

    test.simulate(writer, width, height);

    writer2.println("<html>");
    writer2.println("<head>");
    writer2.println("<script src=\"" + fileStem + ".js></script>");
    writer2.println("<style type=\"text/css\">");
    writer2.println("canvas { border: 1px solid black; }");
    writer2.println("</style> </head>");
    writer2.println("<body onload=\"draw();\">");
    writer2.println("<h1>Cellular Automata with Rule " + rule + "</h1>");
    writer2.println("<canvas id=\"CellAutomata\" width=\"" + width + "\" height=\"" + height + "\">");
    writer2.println("<p>Your browser doesn't support canvas.</p>");
    writer2.println("</canvas> </body> </html>");
  }
}
公共类CellAutomatest{
公共静态void main(字符串[]args)
{
int rule=120;//Integer.parseInt(args[0]);
int numGen=5;//Integer.parseInt(args[1]);
字符串fileStem=“ca”//args[2];
int width=400;//Integer.parseInt(args[3]);
int height=400;//Integer.parseInt(args[4]);
细胞自动机测试=新细胞自动机(numGen,规则);
PrintWriter=null;
试一试{
writer=newprintwriter(newfilewriter(filetem+“.js”);
}捕获(IOEX异常){
Logger.getLogger(CellAutomatest.class.getName()).log(Level.SEVERE,null,ex);
}
PrintWriter writer2=null;
试一试{
writer2=新的PrintWriter(新的FileWriter(filetem+“.html”);
}捕获(IOEX异常){
Logger.getLogger(CellAutomatest.class.getName()).log(Level.SEVERE,null,ex);
}
println(“函数draw(){”);
writer.println(“var canvas=document.getElementById('CellAutomata');”;
println(“if(canvas&&canvas.getContext){”);
writer.println(“var context=canvas.getContext('2d');”;
测试。模拟(书写器、宽度、高度);
writer2.println(“”);
writer2.println(“”);
writer2.println(“您需要使用:

writer2.flush();
writer2.close();

实际保存文件。

事实上,他只需要关闭文件。关闭会刷新写入输出流的内容。谢谢。我是Java新手,所以我不知道必须包含这些内容。我应该知道有一些命令可以这样做。无论如何,现在我成功地保存到文件,并且发现它是n不要像怀疑的那样创建网格,所以现在真正的乐趣开始了。