2014-09-20 6 views
1

Я просто пытаюсь записать свой «головоломку» 2d массива в файл. У меня есть цикл double для цикла, который читает все значения char в моем массиве и, предположительно, записывает их в файл. Я не могу найти ошибку в моем коде. Файл говорит, что он изменен, когда я запускаю программу, но она по-прежнему пуста. Спасибо, парни!Java PrintWriter не работает

public void writeToFile(String fileName) 
{ 
try{ 
    PrintWriter pW = new PrintWriter(new File(fileName)); 
    for(int x = 0; x < 25; x++) 
    { 
     for(int y = 0; y < 25; y++) 
     { 
      pW.write(puzzle[x][y]); 
     } 
     pW.println(); 
    } 
    } 
    catch(IOException e) 
    { 
    System.err.println("error is: "+e.getMessage()); 
    } 
} 

ответ

7

Закройте PrintWriter в конце концов заблокировать, чтобы смыть его и вернуть ресурсы

public void writeToFile(String fileName) { 

    // **** Note that pW must be declared before the try block 
    PrintWriter pW = null; 
    try { 
    pW = new PrintWriter(new File(fileName)); 
    for (int x = 0; x < 25; x++) { 
     for (int y = 0; y < 25; y++) { 
      pW.write(puzzle[x][y]); 
     } 
     pW.println(); 
    } 
    } catch (IOException e) { 
    // System.err.println("error is: "+e.getMessage()); 
    e.printStackTrace(); // *** this is more informative *** 
    } finally { 
    if (pW != null) { 
     pW.close(); // **** closing it flushes it and reclaims resources **** 
    } 
    } 
} 

Оговорка: Код не тестировался и не компилируется.

Обратите внимание, что другой вариант заключается в использовании try with resources.

+0

Да, это попытка, не найти pW в заявлении finally - Says "не может найти символ: PW" – user43043

+0

@ user3908256: внимательно посмотрите на мой пример, особенно там, где я *** объявляю *** переменную pW - Я делаю это ** выше ** блок try. –

+0

AHH извините - Lemme попробуйте это – user43043

Смежные вопросы