FileNotFoundException captures d'erreur lors de la lecture du fichier en Java
Je suis en train d'écrire un programme qui lit des nombres entiers à partir d'un fichier texte et puis les sorties de la somme pour un fichier de sortie. La seule erreur que je reçois est dans mon bloc catch à la ligne 38 "en Suspens compilation problème: le fichier ne peut pas être résolu". Notez que "fichier" est le nom de mon fichier d'entrée de l'objet. Si j'en commentaire de ce bloc d'exception, le programme s'exécute correctement. Tout conseil serait apprécié!
import java.io.*;
import java.util.Scanner;
public class ReadWriteTextFileExample
{
public static void main(String[] args)
{
int num, sum = 0;
try
{
//Create a File object from input1.txt
File file = new File("input1.txt");
Scanner input = new Scanner(file);
while(input.hasNext())
{
//read one integer from input1.txt
num = input.nextInt();
sum += num;
}
input.close();
//create a text file object which you will write the output to
File output1 = new File("output1.txt");
//check whether the file's name already exists in the current directory
if(output1.exists())
{
System.out.println("File already exists");
System.exit(0);
}
PrintWriter pw = new PrintWriter(output1);
pw.println("The sum is " + sum);
pw.close();
}
catch(FileNotFoundException exception)
{
System.out.println("The file " + file.getPath() + " was not found.");
}
catch(IOException exception)
{
System.out.println(exception);
}
}//end main method
}//end ReadWriteTextFileExample
Vous devez vous connecter pour publier un commentaire.
Champ d'application en Java repose sur des blocs. Toute variable que vous déclarez à l'intérieur d'un bloc est uniquement dans la portée jusqu'à la fin de ce même bloc.
Toutefois, si vous déclarez
file
avant votretry
bloc, il restera dans le champ d'application:La
file
variable est déclarée dans letry
bloc. Il est hors de portée dans lacatch
bloc. (Bien qu'il ne pourrait pas se produire dans ce cas, imaginez si l'exception était lancée avant l'exécution n'a pas encore atteint la déclaration de la variable. Fondamentalement, vous ne pouvez pas accéder à une variable dans uncatch
bloc qui est déclaré dans le correspondanttry
bloc.)Vous devez déclarer avant le bloc try place: