Στις λειτουργίες αρχείων C #, συνήθως οι ροές χρησιμοποιούνται για την ανάγνωση και την εγγραφή σε αρχεία. Η ροή είναι ένα επιπλέον επίπεδο που δημιουργείται μεταξύ μιας εφαρμογής και ενός αρχείου. Η ροή χρησιμοποιείται για την εξασφάλιση ομαλής λειτουργίας ανάγνωσης και εγγραφής στο αρχείο.
Οι ροές χρησιμοποιούνται συνήθως κατά την ανάγνωση δεδομένων από μεγάλα αρχεία. Χρησιμοποιώντας ροές, τα δεδομένα από μεγάλα αρχεία χωρίζονται σε μικρά κομμάτια και αποστέλλονται στη ροή. Αυτά τα κομμάτια δεδομένων μπορούν στη συνέχεια να διαβαστούν από την εφαρμογή.
Ο λόγος για την κατανομή του σε μικρά κομμάτια είναι λόγω του αντίκτυπου στην απόδοση της ανάγνωσης ενός μεγάλου αρχείου σε μία λήψη. Εάν επρόκειτο να διαβάσετε τα δεδομένα από, για παράδειγμα, ένα αρχείο 100 MB σε μία λήψη, η εφαρμογή σας θα μπορούσε απλώς να κολλήσει και να γίνει ασταθής. Η καλύτερη προσέγγιση είναι τότε να χρησιμοποιήσετε ροές για να διασπάσετε το αρχείο σε διαχειρίσιμα κομμάτια.
Έτσι, όταν πραγματοποιείται μια λειτουργία εγγραφής στο αρχείο, τα δεδομένα που πρέπει να γραφτούν, γράφονται πρώτα στη ροή. Από τη ροή, τα δεδομένα στη συνέχεια γράφονται στο αρχείο. Το ίδιο ισχύει και για τη λειτουργία ανάγνωσης. Στη λειτουργία ανάγνωσης, τα δεδομένα μεταφέρονται πρώτα από το αρχείο στη ροή. Στη συνέχεια, τα δεδομένα διαβάζονται από την εφαρμογή μέσω της ροής. Ας δούμε ένα παράδειγμα για το πώς μπορούμε να διαβάζουμε και να γράφουμε χρησιμοποιώντας ροές.
Σε αυτό το σεμινάριο, θα μάθετε-
- Αναγνώστης ροής
- Stream Writer
Αναγνώστης ροής
Ο αναγνώστης ροής χρησιμοποιείται για την ανάγνωση δεδομένων από ένα αρχείο χρησιμοποιώντας ροές. Τα δεδομένα από το αρχείο διαβάζονται πρώτα στη ροή. Στη συνέχεια, η εφαρμογή διαβάζει τα δεδομένα από τη ροή.
Για το παράδειγμά μας, θα υποθέσουμε ότι έχουμε ένα αρχείο στη μονάδα δίσκου D που ονομάζεται Example.txt. Το αρχείο θα είναι ένα απλό αρχείο κειμένου και θα έχει 2 γραμμές όπως φαίνεται παρακάτω
- Guru99 -. Δίκτυο
- Guru99 -C #
Για παράδειγμα, θα δημιουργήσουμε μια απλή εφαρμογή Κονσόλας και θα εργαζόμαστε με ροές αρχείων
Ας δούμε ένα παράδειγμα για το πώς μπορούμε να χρησιμοποιήσουμε ροές για την ανάγνωση δεδομένων από ένα αρχείο. Εισαγάγετε τον παρακάτω κωδικό στο αρχείο program.cs.
using System;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{static void Main(string[] args){String path = @"D:\Example.txt";using (StreamReader sr = File.OpenText(path)){String s = "";while ((s = sr.ReadLine()) != null){Console.WriteLine(s);}}Console.ReadKey();}}}
Επεξήγηση κώδικα: -
- Πρώτον, δηλώνουμε ένα αντικείμενο αναγνώστης ροής. Το αντικείμενο αναγνώστης ροής χρησιμοποιείται στο C # για να καθορίσει μια ροή από το αρχείο στην εφαρμογή. Τα δεδομένα θα προωθηθούν από το αρχείο στη ροή κάθε φορά που διαβάζονται δεδομένα από το αρχείο. Το File.OpenText χρησιμοποιείται για το άνοιγμα του αρχείου "Example.txt" σε λειτουργία μόνο για ανάγνωση. Στη συνέχεια, ο χειριστής του αρχείου αποστέλλεται στο αντικείμενο της συσκευής ανάγνωσης ροής.
- Στη συνέχεια, ορίζουμε μια προσωρινή μεταβλητή 's' που θα χρησιμοποιηθεί για την ανάγνωση όλων των δεδομένων από το αρχείο.
- Στη συνέχεια, χρησιμοποιούμε τη μέθοδο ανάγνωσης ροής ReadLine για να διαβάσουμε κάθε γραμμή από το buffer ροής. Όταν εκτελούμε αυτήν τη λειτουργία, κάθε γραμμή θα μεταφερθεί πρώτα από το αρχείο στο buffer. Στη συνέχεια, η γραμμή συμβολοσειράς θα μεταφερθεί από το buffer στη μεταβλητή 's'. Στη συνέχεια γράφουμε τα περιεχόμενα της συμβολοσειράς 's στην κονσόλα.
Όταν ο παραπάνω κώδικας έχει οριστεί και το έργο εκτελείται χρησιμοποιώντας το Visual Studio, θα λάβετε την παρακάτω έξοδο.
Παραγωγή:-
Από την έξοδο, μπορείτε να δείτε ότι ο Αναγνώστης ροής διαβάζει και τις δύο γραμμές από το αρχείο. Τέλος, οι γραμμές της συμβολοσειράς που διαβάστηκαν από τη ροή εστάλησαν στην Κονσόλα.
Stream Writer
Ο συγγραφέας ροής χρησιμοποιείται για την εγγραφή δεδομένων σε ένα αρχείο χρησιμοποιώντας ροές. Τα δεδομένα από την εφαρμογή εγγράφονται πρώτα στη ροή. Μετά από αυτό, η ροή γράφει τα δεδομένα στο αρχείο. Ας δούμε ένα παράδειγμα για το πώς μπορούμε να χρησιμοποιήσουμε ροές για τη σύνταξη δεδομένων από ένα αρχείο. Εισαγάγετε τον παρακάτω κωδικό στο αρχείο program.cs.
using System;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{static void Main(string[] args){String path = @"D:\Example.txt";using (StreamWriter sr = File.AppendText(path)){sr.WriteLine("Guru99 - ASP.Net");sr.Close();Console.WriteLine(File.ReadAllText(path));}Console.ReadKey();}}}
Επεξήγηση κώδικα: -
- Πρώτον, δηλώνουμε ένα αντικείμενο συγγραφέα ροής. Το αντικείμενο συγγραφέα ροής χρησιμοποιείται στο C # για να ορίσει μια ροή. Στη συνέχεια, η ροή χρησιμοποιείται για την εγγραφή δεδομένων από την εφαρμογή στο αρχείο. Τα δεδομένα θα προωθηθούν από την εφαρμογή στη ροή όποτε χρειάζεται να γραφτούν δεδομένα. Η εντολή File.AppendText χρησιμοποιείται για το άνοιγμα του αρχείου "Example.txt" σε λειτουργία προσάρτησης. Στη συνέχεια, ο χειριστής του αρχείου αποστέλλεται στο αντικείμενο συγγραφέα ροής.
- Χρησιμοποιούμε τη μέθοδο εγγραφής ροής Writeline για να γράψουμε τη γραμμή "Guru99 - ASP.Net" στη ροή. Από τη ροή, η γραμμή θα γραφτεί στη συνέχεια στο αρχείο.
- Στη συνέχεια κλείνουμε το πρόγραμμα δημιουργίας ροής αφού γράψαμε στο αρχείο. Συνήθως είναι καλή πρακτική να κλείνετε τους χειριστές αρχείων όταν το αρχείο δεν απαιτείται πλέον για λόγους γραφής.
- Τέλος, διαβάζουμε ξανά τα περιεχόμενα του αρχείου και το γράφουμε στο αρχείο καταγραφής της κονσόλας. Αυτό γίνεται για να ελέγξετε εάν η γραμμή γράφτηκε στο αρχείο.
Όταν ο παραπάνω κώδικας έχει οριστεί και το έργο εκτελείται χρησιμοποιώντας το Visual Studio, θα λάβετε την παρακάτω έξοδο.
Παραγωγή:-
Από την έξοδο, μπορείτε να δείτε ότι η γραμμή "Guru99 - ASP.Net" προστέθηκε στο αρχείο με επιτυχία. Μπορείτε να δείτε και τις 3 γραμμές κειμένου στην κονσόλα.
Περίληψη
- Οι ροές χρησιμοποιούνται ως ενδιάμεσο επίπεδο μεταξύ της εφαρμογής και του αρχείου.
- Ένα StreamReader χρησιμοποιείται όποτε απαιτούνται δεδομένα για ανάγνωση από ένα αρχείο.
- Ένα Streamwriter χρησιμοποιείται όποτε τα δεδομένα πρέπει να γραφτούν σε ένα αρχείο.