5.12 Επεξεργασία αρχείων στην γλώσσα C#

Η επεξεργασία αρχείων στη γλώσσα C# πραγματοποιείται με τη χρήση διάφορων κλάσεων και μεθόδων που παρέχονται από τη βιβλιοθήκη του .NET. Για την ανάγνωση και εγγραφή δεδομένων από αρχεία, μπορούμε να χρησιμοποιήσουμε τις κλάσεις StreamReader και StreamWriter.

Για να διαβάσουμε δεδομένα από ένα αρχείο, μπορούμε να δημιουργήσουμε ένα αντικείμενο της κλάσης StreamReader και να χρησιμοποιήσουμε τη μέθοδο ReadLine() για να διαβάσουμε κάθε γραμμή του αρχείου. Εδώ είναι ένα παράδειγμα:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "path/to/file.txt"; // Ορίζουμε μια μεταβλητή filePath και την αναθέτουμε με το διαδρομή του αρχείου που θέλουμε να διαβάσουμε

        using (StreamReader reader = new StreamReader(filePath)) // Δημιουργούμε ένα αντικείμενο StreamReader για να διαβάσουμε το περιεχόμενο του αρχείου
        {
            string line; // Ορίζουμε μια μεταβλητή line για να αποθηκεύσουμε την κάθε γραμμή που διαβάζουμε

            while ((line = reader.ReadLine()) != null) // Επαναλαμβάνουμε τη διαδικασία μέχρι να φτάσουμε στο τέλος του αρχείου
            {
                Console.WriteLine(line); // Εκτυπώνουμε την τρέχουσα γραμμή στην οθόνη
            }
        }
    }
}

Ο παραπάνω κώδικας C# διαβάζει το περιεχόμενο ενός αρχείου κειμένου γραμμή προς γραμμή και το εκτυπώνει στην οθόνη.

Αρχικά, ορίζουμε τη μεταβλητή filePath και την αναθέτουμε με τη διαδρομή (path) του αρχείου που θέλουμε να διαβάσουμε.

Στη συνέχεια, χρησιμοποιούμε τη δομή using για να δημιουργήσουμε ένα αντικείμενο StreamReader, το οποίο χρησιμοποιείται για την ανάγνωση του αρχείου. Το using διασφαλίζει ότι οι πόροι που χρησιμοποιούνται από τον StreamReader θα απελευθερωθούν αυτόματα μετά το τέλος του block κώδικα.

Μέσα στην επαναληπτική δομή while, διαβάζουμε κάθε γραμμή του αρχείου χρησιμοποιώντας τη μέθοδο ReadLine() του StreamReader. Η ReadLine() επιστρέφει την επόμενη γραμμή του αρχείου ως μια συμβολοσειρά, και η μεταβλητή line αποθηκεύει την τρέχουσα γραμμή.

Στη συνέχεια, εκτυπώνουμε την τρέχουσα γραμμή χρησιμοποιώντας τη μέθοδο Console.WriteLine(), που εμφανίζει τη συμβολοσειρά στην κονσόλα.

Η διαδικασία αυτή επαναλαμβάνεται μέχρι να φτάσουμε στο τέλος

του αρχείου, δηλαδή όταν η ReadLine() επιστρέψει την τιμή null.

Έτσι, ο κώδικας εκτυπώνει όλες τις γραμμές του αρχείου κειμένου στην οθόνη.

Εδώ είναι ένα παράδειγμα:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // Ορισμός του αρχείου προς εγγραφή
        string filePath = "path/to/file.txt";

        // Χρήση του "using" για να δημιουργήσουμε έναν StreamWriter και να τον αναθέσουμε στη μεταβλητή writer
        // Ο StreamWriter θα διαχειριστεί αυτόματα το άνοιγμα και το κλείσιμο του αρχείου
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            // Εγγραφή κειμένου στο αρχείο
            writer.WriteLine("Hello, World!");
            writer.WriteLine("This is a sample line.");
        }
    }
}

Ο παραπάνω κώδικας σε C# πραγματοποιεί την εγγραφή κειμένου σε ένα αρχείο. Ακολουθεί μια περιγραφή του κώδικα:

  1. Ορίζεται η μεταβλητή filePath και αναθέτεται η τιμή “path/to/file.txt”, η οποία αντιπροσωπεύει τη διαδρομή του αρχείου που θα δημιουργηθεί και εγγραφεί το κείμενο.
  2. Χρησιμοποιώντας τη δομή using, δημιουργείται ένα αντικείμενο StreamWriter με όνομα writer, το οποίο χρησιμοποιείται για την εγγραφή στο αρχείο. Η δομή using εξασφαλίζει ότι το αντικείμενο StreamWriter θα κλείσει αυτόματα μετά την ολοκλήρωση του μπλοκ κώδικα, ανεξαρτήτως εάν πραγματοποιηθεί εξαίρεση.
  3. Μέσα στο μπλοκ της using, χρησιμοποιώντας τον writer, γίνεται η εγγραφή του κειμένου στο αρχείο. Με την writer.WriteLine() γράφονται δύο γραμμές κειμένου στο αρχείο, “Hello, World!” και “This is a sample line.”

Ο κώδικας εγγράφει το κείμενο στο αρχείο που ορίζεται από την τιμή της μεταβλητής filePath. Ο αρχικός φάκελος από όπου θα δημιουργηθεί το αρχείο εξαρτάται από τη συγκεκριμένη τιμή που έχει οριστεί.

Αυτές είναι μερικές από τις βασικές λειτουργίες για την επεξεργασία αρχείων στη γλώσσα C#. Μπορούμε να κάνουμε πολλές άλλες ενέργειες, όπως ανάγνωση και εγγραφή δυαδικών δεδομένων, διαχείριση διαδρομών αρχείων, διαγραφή αρχείων κ.λπ. Η γλώσσα C# παρέχει μια πλούσια σειρά από εργαλεία για την επεξεργασία αρχείων και την ανταλλαγή δεδομένων με αρχεία.

Η κλάση File από το namespace System.IO μας επιτρέπει να εργαζόμαστε με αρχεία:

using System.IO;

// Ελέγχουμε αν ένα αρχείο υπάρχει
bool fileExists = File.Exists("myfile.txt");

// Ανοίγουμε ένα αρχείο για ανάγνωση και διαβάζουμε το περιεχόμενό του
string content = File.ReadAllText("myfile.txt");

// Δημιουργούμε ένα νέο αρχείο και γράφουμε κείμενο μέσα σε αυτό
File.WriteAllText("newfile.txt", "Hello, World!");

// Προσθέτουμε περιεχόμενο σε ένα υπάρχον αρχείο
File.AppendAllText("existingfile.txt", "More text to add.");

// Αντιγράφουμε ένα αρχείο σε έναν νέο τοποθεσία
File.Copy("sourcefile.txt", "destinationfile.txt");

// Διαγράφουμε ένα αρχείο
File.Delete("fileToDelete.txt");

Στο παραπάνω παράδειγμα, χρησιμοποιούμε την κλάση File για να εκτελέσουμε διάφορες λειτουργίες σε αρχεία. Χρησιμοποιούμε τις μεθόδους της κλάσης File, όπως Exists, ReadAllText, WriteAllText, AppendAllText, Copy και Delete, για να ελέγξουμε την ύπαρξη ενός αρχείου, να διαβάσουμε το περιεχόμενό του, να δημιουργήσουμε νέα αρχεία, να προσθέσουμε περιεχόμενο σε υπάρχοντα αρχεία, να αντιγράψουμε αρχεία και να διαγράψουμε αρχεία.

Σημειώστε ότι πρέπει να έχετε τη σωστή διαδρομή του αρχείου για να εκτελέσετε τις παραπάνω ενέργειες σε ένα αρχείο.

Η κλάση File περιέχει πολλές χρήσιμες μεθόδους για τη δημιουργία και τη λήψη πληροφοριών σχετικά με τα αρχεία. Αναφέρονται μερικές από αυτές:

Παρακάτω παρουσιάζονται οι μέθοδοι της κλάσης File με τις αντίστοιχες περιγραφές:

ΜέθοδοςΠεριγραφή
AppendText()Προσθέτει κείμενο στο τέλος ενός υπάρχοντος αρχείου
Copy()Αντιγράφει ένα αρχείο
Create()Δημιουργεί ή αντικαθιστά ένα αρχείο
Delete()Διαγράφει ένα αρχείο
Exists()Ελέγχει εάν το αρχείο υπάρχει
ReadAllText()Διαβάζει το περιεχόμενο ενός αρχείου
Replace()Αντικαθιστά το περιεχόμενο ενός αρχείου με το περιεχόμενο ενός άλλου αρχείου
WriteAllText()Δημιουργεί ένα νέο αρχείο και γράφει το περιεχόμενο σε αυτό. Αν το αρχείο υπάρχει, θα αντικατασταθεί.

Αυτές οι μέθοδοι σας δίνουν τη δυνατότητα να εκτελέσετε διάφορες ενέργειες σε αρχεία, όπως την προσθήκη κειμένου σε υπάρχον αρχείο, τη δημιουργία αντιγράφων αρχείων, τη δημιουργία νέων αρχείων, τη διαγραφή αρχείων, τον έλεγχο ύπαρξης αρχείων, την ανάγνωση του περιεχομένου αρχείων, την αντικατάσταση του περιεχομένου αρχείων και την εγγραφή περιεχομένου σε αρχεία.

[adinserter block=”2″]

Μπορείτε να χρησιμοποιήσετε αυτές τις μεθόδους για να επιτελέσετε τις ανάλογες εργασίες σε αρχεία, παρέχοντας τα απαραίτητα ορίσματα όπως τα ονόματα αρχείων και τα περιεχόμενα που θέλετε να εισαγάγετε ή να διαβάσετε.

Στο παρακάτω παράδειγμα, χρησιμοποιούμε τη μέθοδο WriteAllText() για να δημιουργήσουμε ένα αρχείο με το όνομα “filename.txt” και να γράψουμε κάποιο περιεχόμενο σε αυτό. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο ReadAllText() για να διαβάσουμε το περιεχόμενο του αρχείου:

using System.IO;

string content = "This is the content of the file.";

// Γράφουμε το περιεχόμενο σε ένα αρχείο
File.WriteAllText("filename.txt", content);

// Διαβάζουμε το περιεχόμενο από το αρχείο
string readContent = File.ReadAllText("filename.txt");

Console.WriteLine(readContent);

Σε αυτό το παράδειγμα, δημιουργούμε μια μεταβλητή content που περιέχει το περιεχόμενο που θέλουμε να γράψουμε στο αρχείο. Χρησιμοποιούμε τη μέθοδο WriteAllText() της κλάσης File για να γράψουμε το περιεχόμενο στο αρχείο με το όνομα “filename.txt”.

Στη συνέχεια, χρησιμοποιούμε τη μέθοδο ReadAllText() για να διαβάσουμε το περιεχόμενο του αρχείου “filename.txt” και αποθηκεύουμε το αποτέλεσμα στη μεταβλητή readContent. Τέλος, εκτυπώνουμε το περιεχόμενο με τη χρήση της μεθόδου Console.WriteLine().

21 Αυγούστου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων