Нет вывода в файл с помощью 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 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>");
  }
}

person The Rationalist    schedule 22.10.2012    source источник


Ответы (1)


Вам нужно использовать:

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

для фактического сохранения файла.

person Community    schedule 22.10.2012
comment
На самом деле ему нужно только закрыть файл. Закрытие сбрасывает то, что было записано в выходной поток. - person Jagger; 22.10.2012
comment
Спасибо. Я новичок в Java, поэтому я не знал, что должен включать это. Я должен был знать, что для этого есть какая-то команда. В любом случае, теперь я успешно сохраняю файл и обнаружил, что он не создает сетку, как предполагалось, так что теперь начинается самое интересное. - person The Rationalist; 22.10.2012