Απαιτήσεις: Έγραψα πριν ότι η μορφή του αρχείου ελέγχεται από την κεφαλίδα του αρχείου, στην πραγματικότηταΧρειάζεται μόνο να διαβάσετε τα πρώτα byte του αρχείου για να κρίνετε και δεν χρειάζεται να διαβάσετε ολόκληρο το αρχείοΑυτό το άρθρο χρησιμοποιεί το Stream για να διαβάσει τα πρώτα byte ενός αρχείου δίσκου και να βελτιστοποιήσει το χώρο στη μνήμη, που είναι στην πραγματικότητα αυτό που είναιΔιαβάστε κατ' απαίτηση。
Αναθεώρηση:
χρήσηΑρχείο.ReadAllBytesΔιαβάζοντας ολόκληρο το αρχείο της εφαρμογής, μπορείτε να δείτε ότι το πρόγραμμα είναι πολύ απασχολημένο. Οπως φαίνεται παρακάτω:
Στην πραγματικότητα, χρειάζονται μόνο 2 byte για να διαβαστεί για να προσδιοριστεί εάν το αρχείο είναι εφαρμογή ή όχιΑναγνώστης ροήςΔιαβάστε τα πρώτα 2 byte του αρχείου όπως φαίνεται παρακάτω:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Μπορείτε να δείτε από την αρχική μνήμηΜειωμένη χρήση από 287.11 MB σε 20.55 MB(Χωρίς ανάγνωση του αρχείου, η προεπιλεγμένη μνήμη καταλαμβάνεται μετά την εκκίνηση του προγράμματος: 20,02 MB), γεγονός που δείχνει ότι εξοικονομούνται πολλά περιττά έξοδα μνήμης. Ο κωδικός έχει ως εξής:
Εάν θέλουμε να δούμε μόνο την αρχή του κειμένου, μπορούμε να χρησιμοποιήσουμε την εντολή more για να το προβάλουμε, πώς να χρησιμοποιήσουμε τον κώδικα .NET/C# για να διαβάσουμε το περιεχόμενο του κειμένου;
Διαβάζεται με δύο τρόπους και ο κώδικας έχει ως εξής:
Δεδομένου ότι αυτό το αρχείο είναι περιεχόμενο απλού κειμένου,Εάν είναι UTF-8 ή άλλη μορφή κωδικοποίησης, τα πρώτα byte του αρχείου πρέπει να αγνοηθούν, δηλαδή να οριστεί η θέση της ροής (π.χ. Θέση = 2)。
(Τέλος)
|