آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش خواندن و نوشتن فایل ها در C#

دوره های مرتبط با این مقاله

آموزش خواندن و نوشتن فایل ها در زبان C# :

در این بخش ، قصد داریم تا نحوه خواندن (Reading) و نوشتن (Writing) در فایل ها، به وسیله زبان C# را آموزش دهیم. خوشبختانه، زبان C# با امکاناتی که ارائه داده است، انجام این امور را بسیار ساده کرده است. کلاس File Class از System IO namespace، تقریبا شامل تمام چیزهایی است که برای خواندن و نوشتن فایل ها در C# نیاز داریم.
در اولین مثال این درس، یک ویرایشگر متنی ساده را کدنویسی می کنیم. این ویرایشگر به حدی ساده است که به وسیله آن فقط می توان محتویات یک فایل را خوانده و سپس در هر زمان یک جدید خط به آن اضافه نمود. اما در عین حال، بسیاری از ویژگی های کار با کلاس Field Class را نشان می دهد. به صورت کد زیر :

using System;
using System.IO;
namespace FileHandlingArticleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            if(File.Exists("test.txt"))
            {
                string content = File.ReadAllText("test.txt");
                Console.WriteLine("Current content of file:");
                Console.WriteLine(content);
            }
            Console.WriteLine("Please enter new content for the file:");
            string newContent = Console.ReadLine();
            File.WriteAllText("test.txt", newContent);
        }
    }
}
            

اگر دقت کرده باشید در کد مثال فوق، کلاس File Class را در سه نقطه استفاده کرده ایم :

  • اول این که از آن استفاده کرده این تا ببینیم آیا فایل متنی مورد نظر وجود دارد یا خیر، file exist.
  • از متد ReadAllText() برای خمواند کل محتویات فایل استفاده شده است.
  • در انتها هم از متد WriteAllText() برای اضافه کردن خط محتویات جدید به فایل استفاده کرده ایم.

باز هم اگر دقت کرده باشید، از یک آدرس مطلق برای فراخوانی فایل متنی مورد نظر خود استفاده نکرده و فقط نام فایل را به کار برده ایم. انجام این باعث قرار گرفتن فایل متنی در همان پوشه فایل اجرایی برنامه می شود که برای این مرحله مناسب است.
از طرف دیگر، مثال عملی ارائه شده بسیار ساده جهت یادگیری است : ما چک کردیم فایل متنی وجود دارد یا خیر، سپس کل مجتویات آن را در Cousole نشان دادیم. در مرحله دوم از کاربر خواسته ایم تا متد مورد نظر خود را تایپ نموده و بعد محتویات جدید را به فایل اضافه نمودیم. البته این کار باعث بازنویسی محتویات فایل قبلی می شود و درواقع آن را آپدیت می کند، که برای مرحله اول آموزش خوب است.

نکته کاربردی :

می توان به جای متد WriteAllText() از متد Append AllText() به صورت مثال زیر استفاده کنیم تا محتویات جدید را به انتهای فایل موجود اضافه کرده و باعث از بین رفتن محتوی اولیه فایل نشود.

File.AppendAllText("test.txt", newContent);
            

اگر کد فوق را در مثال اول تغییر دهید، خواهید دید که برنامه به جای رونویسی کامل فایل اولیه، متن را به انتهای آن اضافه می کند. اما هنوز ما فقط یک خط متن می توانیم به برنامه بدهیم. بیایید مثال قبل را کمی گسترش داده و آن را هوشمندتر کنیم. خط های کد زیر را با خط های انتهای مثال اول جایگزین کنید :

 Console.WriteLine("Please enter new content for the file - type exit and press enter to finish editing:");
string newContent = Console.ReadLine();
while(newContent != "exit")
{
    File.AppendAllText("test.txt", newContent + Environment.NewLine);
    newContent = Console.ReadLine();
}             
            

همانطور که مشاهده می کنید، ما کاربر را راهنمایی کردیم که در صورت تمایل برای اتمام عمل اضافه کردن متن به فایل موجود، عبارت “exit” را تایپ کند. در صورت عدم وارد نمودن این واژه، کاربر می تواند هر تعداد خط متن جدید که می خواهد به فایل اضافه کرده و برنامه با ارائه متد درخواست متن، همچنان ورودی دریافت می کند. ما همچنین یک کد جدید را به انتهای دستور newline به نام Enviroment.NewLine اضافه کرده ایم تا محیط برنامه کمی شبیه ادیتورهای متنی شود.
از طرف دیگر، به جای این که در هر بار اجرای کدهای برنامه، محتویات به فایل اضافه کنیم، به کاربران راه حل زیر می تواند کمی بهتر باشد :

Console.WriteLine("Please enter new content for the file - type exit and press enter to finish editing:");
using(StreamWriter sw = new StreamWriter("test.txt"))
{
    string newContent = Console.ReadLine();
    while(newContent != "exit")
    {
        sw.Write(newContent + Environment.NewLine);
        newContent = Console.ReadLine();
    }
}
                        

استفاده از قابلیت Steams کمی فراتر از آموزش های این بخش است، اما خلاصه کاربرد آن این است که به وسیله آن، فایل متنی مورد نظر را یک بار باز کرده و هرچقدر محتویات داریم، به آن اضافه کرده و در پایان کار به یک باره فایل را می بندیم.
از طرف دیگر، در مثال فوق ما از قابلیت دستور Using() در C# استفاده کرده ایم. دستور Using() این اطمینان را به ما می دهد که ارجاع به فایل به محض این که برنامه از Scope کد خارج شد، که در اینجا انتهای براکت ها {} است، به صورت خودکار بسته می شود. در صورت عدم استفاده از using() بایستی در انتهای نمونه شی StreamWriter، جهت بستن فایل متنی، متد Close() را فراخوانی کنید.

  • 16216
  •    2594
  • تاریخ ارسال :   1395/08/13

دانلود سورس کد دانلود فیلم آموزشی دانلود فیلم آموزشی 2 دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
آموزش خواندن و نوشتن فایل ها در C#
آموزش خواندن و نوشتن فایل ها در C#
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .