Από μαλακία χθες, έχασα το 3 (μάξιμουμ) στην πρόοδο...
Η Java δεν έχει μέθοδο που ελέγχει αν έχουμε φτάσει στο τέλος του αρχείου (δε ξέρω αν είναι καλό ή κακό). Κάποιες τάξεις (η BufferedReader αν δεν κάνω λάθος) διαβάζουν αυτόματα μέχρι το τέλος του αρχείου. Επειδή εμάς μας είπε να χρησιμοποιήσουμε μόνο την ObjectInputStream για να διαβάσουμε, έπρεπε να διαβάζουμε κάθε επόμενο αντικείμενο αφού κάνουμε έλεγχο αν φτάσαμε στο τέλος του αρχείου.
Εκεί ήταν το πρόβλημά μου. Δε θυμόμουν πώς ελέγχεις αν έφτασες στο EOF. Τελικά είναι εξαιρετικά απλό. Η Java αν φτάσει στο τέλος του αρχείου, ρίχνει -1. Επομένως τσεκάρεις μόνο αυτό. Διαβάζεις κανονικά απ' το stream κι ελέγχεις αν είναι ίσο με -1. Αν είναι, βγαίνει απ' το loop.
Το έλυσα (τώρα δυστυχώς) μ' αυτόν τον τρόπο. Φυσικά βάζω int γιατί γράφαμε/διαβάζαμε ακεραίους.
Μάθημα λοιπόν, τώρα ξέρουμε τί να κάνουμε αν μας ζητούν συγκεκριμένες τάξεις...
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου