Video: Curso Java 14 - Leer y Escribir Ficheros @JoseCodFacilito 2025
Mange Java-programmer læser tegn fra computerens tastatur. Disse programmer bruger ting som Scanner, System. i, og nextDouble - ting defineret i Java's API. DoPayroll-programmet i denne fortegnelse sætter et nyt spin på denne historie. I stedet for at læse tegn fra tastaturet læser programmet tegn fra EmployeeInfo. txt fil. Filen lever på din computers harddisk.
importer java. util. Scanner; importer java. io. Fil; importer java. io. IOException; offentlig klasse DoPayroll {public static void main (String args []) kaster IOException {Scanner diskScanner = ny scanner (ny fil ("EmployeeInfo. txt")); for (int empNum = 1; empNum <= 3; empNum ++) {payOneEmployee (diskScanner);} diskScanner. close ();} statisk ugyldig payOneEmployee (Scanner aScanner) {Medarbejder anEmployee = ny Medarbejder (); en ansat. setName (aScanner. nextLine ()); en ansat. setJobTitle (aScanner. nextLine ()); en ansat. cutCheck (aScanner. nextDouble ()); aScanner. nextLine ();}}
For at læse tegn fra en fil bruger du nogle af de samme ting, som hjælper dig med at læse tegn fra tastaturet. Du bruger Scanner, NextDouble og andre goodies. Men i tillæg til disse godbidder har du et par ekstra forhindringer at hoppe. Her er en liste:
-
Du har brug for et nyt fil objekt. For at være mere præcis skal du bruge en ny forekomst af API'ens filklasse. Du får denne nye forekomst med kode som
Ny fil ("EmployeeInfo. Txt")
Ting i citatmærker er navnet på en fil - en fil på din computers harddisk. Filen indeholder tegn.
På dette tidspunkt gør terminologien bjerge ud af molehills. Det er sikkert, at sætningerne nye fil objekt og den nye fil forekomst vises , , men det eneste du gør er at lave en ny fil ("EmployeeInfo. Txt") en fil på din harddisk. Når du har skubbet ny fil ("EmployeeInfo. Txt") til ny scanner,
Scanner diskScanner = ny scanner (ny fil ("EmployeeInfo. Txt"));
du kan glemme alt om den nye filvirksomhed. Fra det tidspunkt i koden står diskScanner for EmployeeInfo. txt filnavn på din computers harddisk. (Navnet diskScanner står for en fil på din harddisk, ligesom i tidligere eksempler, står tastaturet for de knapper, du trykker på dag og dag ud.)
Oprettelse af et nyt filobjekt i noteringen er som at oprette et nyt medarbejderobjekt senere i samme fortegnelse. Den eneste forskel er, at medarbejder- og kontoklasserne er defineret i denne bogs eksempler.Filklassen er defineret i Java's API.
Når du opretter forbindelse til en diskfil med den nye scanner, skal du ikke glemme den nye fildel. Hvis du skriver ny scanner ("EmployeeInfo. Txt") uden ny fil, vil kompilatoren ikke have noget imod det. (Du får ikke advarsler eller fejlmeddelelser, før du kører koden.) Men når du kører koden, får du ikke noget som de resultater, du forventer at få.
-
Du skal henvise til klassen File med det fulde navn - java. io. Fil . Du kan gøre dette med en importangivelse som den i listen. Alternativt kan du forstyrre din kode med en sætning som
Scanner diskScanner = Ny scanner (ny java.io. Fil ("EmployeeInfo. Txt"));
-
Du har brug for en kaster IOException klausul. Masser af ting kan gå galt, når dit program forbinder med EmployeeInfo. txt. For en ting må din harddisk muligvis ikke have en fil med navnet EmployeeInfo. txt.
-
For en anden, filen EmployeeInfo. txt kan være i den forkerte mappe. At opbygge denne form for katastrofe tager Java-programmeringssproget visse forholdsregler. Sproget insisterer på, at når en diskfil er involveret, anerkender du de mulige farer ved at kalde en ny scanner.
Du kan anerkende farerne på flere mulige måder, men den enkleste måde er at bruge en kaste klausul. I oversigten slutter hovedmetodeens overskrift med ordene kaster IOException. Ved at tilføje disse to ord, appellerer du Java-kompilatoren.
Det er som om du siger "Jeg ved, at kalder ny scanner kan føre til problemer. Du behøver ikke at minde mig om. "Og sikkert nok tilføjer kaster IOException til din hovedmetode, at kompilatoren ikke klager. (Uden denne kaste klausul får du en uberettiget undtagelsesfejlmeddelelse.)