Programmation Java: la lecture d'un fichier

Beaucoup de programmes Java lire de caractères sur le clavier de l'ordinateur. Ces programmes utilisent des choses comme Scanner, System.in, et nextDouble - les choses définies dans l'API de Java. La DoPayroll programme dans cette liste met une nouvelle rotation sur cette histoire. Au lieu de lire les caractères à partir du clavier, le programme lit les personnages de la EmployeeInfo.txt fichier. Le fichier vit sur le disque dur de votre ordinateur.

import-import java.io.File java.util.Scanner-import java.io.IOException-classe publique DoPayroll {static void main (String args []) throws IOException {publics Scanner diskScanner = new Scanner (new File ("EmployeeInfo. txt ")) - for (int empnum = 1- empnum lt; = 3- empnum ++) {payOneEmployee (diskScanner) -} diskScanner.close () -} static void payOneEmployee (Scanner aScanner) {Employé anEmployee = new Employee()-anEmployee.setName(aScanner.nextLine())-anEmployee.setJobTitle(aScanner.nextLine())-anEmployee.cutCheck(aScanner.nextDouble())-aScanner.nextLine()-}}

Pour lire les caractères d'un fichier, vous utilisez certains des mêmes choses que vous aider à lire les caractères à partir du clavier. Tu utilises Scanner, nextDouble, et autres goodies. Mais en plus de ces goodies, vous avez quelques obstacles supplémentaires pour sauter. Voici une liste:

  • Tu as besoin d'un new File objet. Pour être plus précis, vous avez besoin d'une nouvelle instance de l'API Fichier classe. Vous obtenez cette nouvelle instance avec le code comme

    new File ("EmployeeInfo.txt")

    Le truc entre guillemets est le nom d'un fichier - un fichier sur le disque dur de votre ordinateur. Le fichier contient des caractères.




    À ce stade, la terminologie fait montagne d'un rien. Bien sûr, les phrases new File objet et new File exemple apparaître, mais tout ce que vous faites est prise new File ("EmployeeInfo.txt") tenir un fichier sur votre disque dur. Une fois que vous poussez new File ("EmployeeInfo.txt") en nouveau scanner,

    Scanner diskScanner = new Scanner (new File ("EmployeeInfo.txt")) -

    vous pouvez oublier tout sur le new File affaires. De ce point dans le code, diskScanner représente le EmployeeInfo.txt nom de fichier sur le disque dur de votre ordinateur. (Le nom diskScanner représente un fichier sur votre disque dur tout comme, dans les exemples précédents, le nom clavier supports pour ces touches sur lesquelles vous appuyez jour après jour-out.)

    Création d'un new File objet dans la liste est comme la création d'un nouvel employé opposer plus tard dans la même ligne de cotation. La seule différence est que le Employé et Considération classes sont définies dans les exemples de ce livre. La Fichier classe est définie dans l'API de Java.

    Lorsque vous vous connectez à un fichier de disque avec nouveau scanner, ne pas oublier le new File partie. Si vous écrivez nouveau scanner ("EmployeeInfo.txt") sans new File, le compilateur ne me dérangerait pas. (Vous ne recevrez pas des avertissements ou des messages d'erreur avant d'exécuter le code.) Mais lorsque vous exécutez le code, vous ne serez pas obtenir quelque chose comme les résultats que vous attendez à obtenir.

  • Vous devez vous référer au Fichier classe par son nom complet - java.io.File. Vous pouvez faire cela avec une déclaration d'importation comme celui de la liste. Alternativement, vous pouvez encombrer votre code avec une déclaration comme

    Scanner diskScanner = new Scanner (nouvelle java.io.Déposer ("EmployeeInfo.txt")) -
  • Tu as besoin d'un throws IOException clause. Beaucoup de choses peuvent mal tourner lorsque votre programme se connecte à EmployeeInfo.txt. Pour une chose, votre disque dur peut ne pas avoir un fichier nommé EmployeeInfo.txt.

  • Pour un autre, le fichier EmployeeInfo.txt peut-être dans le mauvais répertoire. Pour préparer à ce genre de calamité, le langage de programmation Java prend certaines précautions. La langue insiste pour que quand un fichier de disque est impliqué, vous reconnaissez les dangers possibles de l'appel nouveau scanner.

    Vous pouvez reconnaissez les risques de plusieurs façons possibles, mais le plus simple est d'utiliser un lancers clause. Dans la liste, le principal l'en-tête de la méthode se termine par les mots throws IOException. En ajoutant ces deux mots, vous apaiser le compilateur Java.

    Il est comme si vous dites “ je sais que l'appel nouveau scanner peut conduire à des problèmes. Vous n'êtes pas obligé de me rappeler ”. Et, bien sûr, en ajoutant throws IOException à ton principal méthode permet de conserver le compilateur de se plaindre. (Sans cette lancers clause, vous obtenez une exception non déclarée Message d'erreur.)


» » » » Programmation Java: la lecture d'un fichier