2017-10-06 3 views
-3

Les erreurs sont avec la méthode writeToFile(). Je peux le commenter et il fonctionne parfaitement sans l'erreur Exception. Donc, fondamentalement, j'essaie d'obtenir ces faits de nutrition à imprimer sur un fichier texte. L'erreur ressemble à ceciJe reçois toujours 'Exception dans le thread "main" java.lang.NullPointerException'

« Exception dans le thread "principal" java.lang.NullPointerException à Environment.writeToFile (Java1001.java:71) à Environnement. (Java1001.java:54) à Java1001 .main (Java1001.java:43) »

import static java.lang.System.*; 
    import java.io.*; 

    public class Java1001 
    { 
     public static void main(String[] args) throws IOException 
     { 
      new Environment(); 
     } 
    } 

    class Environment 
    { 
     private PrintStream outFile; 

     public Environment() 
     { 
      createOutputStream(); 
      writeToFile(); 
     } 

     public void createOutputStream() 
     { 
      // create outFile stream here 
      File outFile = null; 
      try 
      { 
       outFile = new File("Nutrition.txt"); 
       outFile.createNewFile(); 
      } 
      catch (Exception e){} 
     } 

     public void writeToFile() 
     { 
      outFile.println("NUTRITION FACTS"); 
      outFile.println("======================================"); 
      outFile.println("Serving Size 1 tbsp (6g)"); 
      outFile.println("Servings Per Container about 4"); 
      outFile.println("======================================"); 
      outFile.println("Amount Per Serving"); 
      outFile.println("Calories   20"); 
      outFile.println("Calories from Fat 5"); 
      outFile.println("======================================"); 
      outFile.println("Total Fat 0.5g"); 
      outFile.println("Sodium 280mg"); 
      outFile.println("Total Carbohydrate 4g"); 
      outFile.println("Sugars 0g"); 
      outFile.println("Protein less than 1 g"); 
      outFile.println("======================================"); 
     } 
    } 
+0

Vous avez 2 variables nommées 'outFile'. –

+0

Vous initialisez la variable locale 'outFile' dans' createOutputStream() 'à la place du membre de données et le membre de données est donc' null' dans 'writeToFile()' – breezee

Répondre

0

comme Johnny Mopp indiqué que vous avez à la fois un outFile dans la méthode createOutputStream ainsi qu'un exemple outFile. Essayez de retirer le File outFile = null; dans la méthode createOutputStream puis dans l'essai, écrire:

this.outFile = new File("Nutrition.txt"); 
this.outFile.createNewFile();