2017-10-17 34 views
1

Voici mon code sur lequel je travaille pour un projet d'école. Ça va jusqu'à ce que j'essaie de lire le fichier animal.txt. Quelqu'un peut-il me dire ce que je fais de mal? Je joins mon erreur de compilation en tant qu'image. Merci d'avance.avoir des problèmes avec Java lire des fichiers d'entrée en utilisant netbeans

[image erreur d'entrée 1

package finalproject; 

     //enabling java programs 
     import java.util.Scanner; 
     import javax.swing.JOptionPane; 

java.io.FileInputStream d'importation; import java.io.IOException;

Monitoring public class {

public static void choseAnimal() throws IOException{ 
    FileInputStream file = null; 
    Scanner inputFile = null; 
    System.out.println("Here is your list of animals"); 
    file = new FileInputStream("\\src\\finalproject\\animals.txt"); 
    inputFile = new Scanner(file); 

    while(inputFile.hasNext()) 
    { 
     String line = inputFile.nextLine(); 
     System.out.println(line); 
    } 
} 

public static void choseHabit(){ 
System.out.println("Here is your list of habits"); 

} 


public static void main(String[] args) throws IOException{ 
    String mainOption = ""; //user import for choosing animal, habit or exit 
    String exitSwitch = "n"; // variable to allow exit of system 
    Scanner scnr = new Scanner(System.in); // setup to allow user imput 




    System.out.println("Welcome to the Zoo"); 
    System.out.println("What would you like to monitor?"); 
    System.out.println("An animal, habit or exit the system?"); 
    mainOption = scnr.next(); 
    System.out.println("you chose " + mainOption); 
    if (mainOption.equals("exit")){ 
    exitSwitch = "y"; 
    System.out.println(exitSwitch); 
    } 
    if (exitSwitch.equals("n")){ 
     System.out.println("Great, let's get started"); 
    } 
     if (mainOption.equals("animal")){ 
      choseAnimal(); 

     } 
     if (mainOption.equals("habit")) { 
      choseHabit(); 

     } 

    else { 
     System.out.println("Good bye"); 
    } 

} 

}

+0

Ne pas, la référence jamais 'src' dans votre code , il n'existera pas une fois le programme construit et emballé. Netbeans emballe automatiquement tout le contenu du répertoire 'src' dans le fichier jar résultat – MadProgrammer

+0

Vous ne pouvez pas non plus traiter une ressource de ce type comme un fichier, vous devez utiliser' Class # getResource' ou 'Class # getResourceAsStream' pour pouvoir lis le – MadProgrammer

Répondre

0

Le message d'erreur indique clairement qu'il ne peut pas trouver le fichier. Cela signifie qu'il ya deux possibilités:

  1. Le fichier n'existe pas dans le répertoire que vous voulez
  2. Directory que vous voulez est pas le répertoire que vous avez.

Je commencerais par la création d'un objet File regardant "." (répertoire courant) et à l'impression que pour voir ce répertoire il semble par défaut. Vous devrez peut-être coder en dur le chemin du fichier, en fonction de ce que netbeans utilise pour un répertoire par défaut.

1

\\src\\finalproject\\animals.txt suggère que le fichier est une ressource incorporée. Tout d'abord, vous ne devriez jamais faire référence à src dans votre code, il n'existera pas une fois le programme construit et le paquet.

Deuxièmement, vous devez utiliser Class#getResource ou Class#getResourceAsStream pour lire.

quelque chose comme ...

//file = new FileInputStream("\\src\\finalproject\\animals.txt"); 
//inputFile = new Scanner(file); 

try (Scanner inputFile = new Scanner(Monitoring.class.getResourceAsStream("/finalproject/animals.txt"), StandardCharsets.UTF_8.name()) { 
    //... 
} catch (IOException exp) { 
    exp.printStackTrace(); 
} 

par exemple

Maintenant, cela suppose que le fichier animals.txt existe dans le package finalproject