2014-09-20 5 views
1

J'essaye simplement d'écrire mon "puzzle" tableau 2d dans un fichier. J'ai un double pour la boucle qui lit à travers chacune des valeurs 'char' dans mon tableau et soi-disant les écrit dans le fichier. Je n'arrive pas à trouver l'erreur dans mon code. Le fichier indique qu'il est modifié lorsque j'exécute le programme, mais il est toujours vide. Merci les gars!Java PrintWriter ne fonctionne pas

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()); 
    } 
} 

Répondre

7

Fermez votre PrintWriter dans un bloc finally pour débusquer et à récupérer les ressources

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 **** 
    } 
    } 
} 

caveat: Code n'a pas été testé ni compilé. Notez qu'une autre option est d'utiliser try with resources.

+0

Donné un essai, il ne trouve pas pW dans la déclaration finale - Dit "ne peut pas trouver le symbole: PW" – user43043

+0

@ user3908256: regardez attentivement mon exemple, en particulier où je *** déclare *** la variable pW - Je le fais ** ci-dessus ** le bloc try. –

+0

AHH désolé - Lemme essayer que – user43043