Βίντεο: Python greek, μαθήματα στα ελληνικά 11 (Files) 2024
Πολλά προγράμματα Java διαβάζουν χαρακτήρες από το πληκτρολόγιο του υπολογιστή. Αυτά τα προγράμματα χρησιμοποιούν πράγματα όπως Scanner, System. in και nextDouble - τα πράγματα που ορίζονται στο API της Java. Το πρόγραμμα DoPayroll σε αυτή την καταχώρηση δίνει μια νέα περιστροφή σε αυτή την ιστορία. Αντί να διαβάζει χαρακτήρες από το πληκτρολόγιο, το πρόγραμμα διαβάζει χαρακτήρες από το EmployeeInfo. txt αρχείο. Το αρχείο ζει στον σκληρό δίσκο του υπολογιστή σας.
εισαγωγή java. χρήσιμο. Ερευνητής; εισαγωγή java. io. Αρχείο; εισαγωγή java. io. IOException; Δημόσια τάξη DoPayroll {δημόσιο static κενό main (String args []) ρίχνει IOException {Scanner diskScanner = νέος σαρωτής (νέο αρχείο ("EmployeeInfo. txt")); για το (int empNum = 1; empNum <= 3; empNum ++) {payOneEmployee (diskScanner);} diskScanner. close ();} static void payOneEmployee (Σαρωτής aScanner) {Employee anEmployee = new Employee (); Ενας υπάλληλος. setName (aScanner, nextLine ()); Ενας υπάλληλος. setJobTitle (aScanner, nextLine ()); Ενας υπάλληλος. cutCheck (aScanner, nextDouble ()); aScanner. nextLine ();}}
Για να διαβάσετε χαρακτήρες από ένα αρχείο, χρησιμοποιείτε μερικά από τα ίδια πράγματα που σας βοηθούν να διαβάσετε χαρακτήρες από το πληκτρολόγιο. Χρησιμοποιείτε Scanner, nextDouble και άλλα καλούδια. Αλλά εκτός από αυτά τα καλούδια, έχετε μερικά επιπλέον εμπόδια για να πηδήσετε. Ακολουθεί μια λίστα:
-
Χρειάζεστε ένα αντικείμενο νέο αρχείο . Για να είμαστε ακριβέστεροι, χρειάζεστε μια νέα εμφάνιση της κλάσης αρχείων του API. Παίρνετε αυτή τη νέα παρουσία με κώδικα όπως
νέο αρχείο ("EmployeeInfo. Txt")
Τα πράγματα σε εισαγωγικά είναι το όνομα ενός αρχείου - ενός αρχείου στον σκληρό δίσκο του υπολογιστή σας. Το αρχείο περιέχει χαρακτήρες.
Σε αυτό το σημείο, η ορολογία κάνει τα βουνά έξω από τα κοράκια. Σίγουρα, οι φράσεις και εμφανίζονται , αλλά το μόνο που κάνετε είναι να δημιουργήσετε νέο αρχείο (EmployeeInfo. Txt) ένα αρχείο στον σκληρό σας δίσκο. Μετά τη μετακίνηση νέου αρχείου ("EmployeeInfo. Txt") σε νέο σαρωτή,
μπορείτε να ξεχάσετε τα πάντα για τη νέα επιχείρηση αρχείων. Από εκείνο το σημείο στον κώδικα, το diskScanner αντιπροσωπεύει το EmployeeInfo. txt στο σκληρό δίσκο του υπολογιστή σας. (Το όνομα diskScanner αντιπροσωπεύει ένα αρχείο στον σκληρό σας δίσκο ακριβώς όπως, σε προηγούμενα παραδείγματα, το πληκτρολόγιο ονόματος αντιστοιχεί σε εκείνα τα κουμπιά που πατάτε την ημέρα και την ημέρα.)
Όταν συνδέετε ένα αρχείο δίσκου με νέο σαρωτή, μην ξεχνάτε το νέο τμήμα του αρχείου. Εάν γράψετε νέο σαρωτή ("EmployeeInfo. Txt") χωρίς νέο αρχείο, ο μεταγλωττιστής δεν θα με πειράξει. (Δεν θα λάβετε προειδοποιήσεις ή μηνύματα σφάλματος προτού εκτελέσετε τον κώδικα.) Αλλά όταν τρέχετε τον κώδικα, δεν θα λάβετε τίποτα σαν τα αποτελέσματα που αναμένετε να πάρετε.
Πρέπει να ανατρέξετε στην κλάση
-
Αρχείο με το πλήρες όνομα της - java. io. Αρχείο . Μπορείτε να το κάνετε αυτό με μια δήλωση εισαγωγής όπως αυτή που υπάρχει στην καταχώριση. Εναλλακτικά, μπορείτε να γεμίσετε τον κωδικό σας με μια εντολή όπως Scanner diskScanner = new Scanner (νέο
java.o. Αρχείο ("EmployeeInfo.txt"))? Χρειάζεται μια ρήτρα
-
ρίχνει ρήτρα IOException . Πολλά πράγματα μπορεί να πάθουν λάθος όταν το πρόγραμμά σας συνδέεται με το EmployeeInfo. κείμενο. Για ένα πράγμα, ο σκληρός σας δίσκος μπορεί να μην έχει αρχείο με όνομα EmployeeInfo. κείμενο. Για ένα άλλο, το αρχείο EmployeeInfo. Το txt μπορεί να βρίσκεται σε λάθος κατάλογο. Για να υποστηρίξετε αυτό το είδος καταστροφής, η γλώσσα προγραμματισμού Java λαμβάνει ορισμένες προφυλάξεις. Η γλώσσα επιμένει ότι όταν πρόκειται για ένα αρχείο δίσκου, αναγνωρίζετε τους πιθανούς κινδύνους να καλέσετε νέο σαρωτή.
-
Μπορείτε να αναγνωρίσετε τους κινδύνους με διάφορους τρόπους, αλλά ο απλούστερος τρόπος είναι να χρησιμοποιήσετε μια ρήτρα ρίψης. Στη λίστα, η κεφαλίδα της κύριας μεθόδου τελειώνει με τις λέξεις
ρίχνει το IOException. Με την προσθήκη αυτών των δύο λέξεων, χαλαρώνετε τον μεταγλωττιστή Java. Είναι σαν να λέτε «ξέρω ότι η κλήση νέου σαρωτή μπορεί να οδηγήσει σε προβλήματα. Δεν χρειάζεται να μου θυμίζει. "Και, ασφαλώς, προσθέτοντας ρίχνει την IOException στην κύρια μέθοδο σας κρατά τον μεταγλωττιστή να παραπονιέται. (Χωρίς αυτή τη ρήτρα ρήτρας, λαμβάνετε ένα μήνυμα λαθών εξαίρεσης που δεν αναφέρεται.)