در این آموزش میخواهیم بصورت ساده انواع روشهای کاربردی خواندن و نوشتن فایلها در سی شارپ را بررسی کنیم. منظور از فایلها در این آموزش فایلهایی هستند که محتوای متنی دارند. به عنوان مثال فایلی که در درون خود یک جمله، پاراگراف، عدد یا محتوایی این چنینی داشته باشد.
خواندن فایلها در سی شارپ
برای خواندن فایلها روشهای گوناگونی وجود دارد که در ادامه به برخی از آنها میپردازیم:
خواندن تمام فایل بصورت یکجا
string textFile = @ "C:\Temp\Data\Authors.txt"; string text = File.ReadAllText(textFile); Console.WriteLine(text);
نمونه کد بالا ساده ترین حالت برای خواندن محتوای یک فایل متنی است. در خط اول مسیر فایل مورد نظر در متغیر textFile قرار میگیرد، در خط بعد تمام محتوای فایل خوانده شده و در متغیر text قرار میگیرد و در نهایت به کمک خط سوم، متن خوانده شده در کنسول چاپ میشود. البته خط سوم در صورتی کارایی دارد که اپلیکیشن شما از نوع Console Application باشد. اگر Windows Form Application ایجاد کرده باشید، بهتر است به کمک کد زیر محتوای متنی را در یک پنجره پیام باز کنید.
MessageBox.show(text);
خواندن فایل بصورت خط به خط
در این روش، پس از خواندن فایل، متن موجود در فایل به یک آرایه از متنی تبدیل میشود که هر عضو آن یک خط از فایل است. این نوع خواندن فایل هم کارکرد خاص خود را دارد. نمونه کد زیر خواندن فایل بصورت خط به خط را انجام میدهد:
string textFile = @ "C:\Temp\Data\Authors.txt"; string[] lines = File.ReadAllLines(textFile); foreach (string line in lines) Console.WriteLine(line);
استفاده از Stream Reader برای خواندن فایل
در این روش نیز مانند روش قبل، با ایجاد یک شیء از کلاس StreamReader میتوانیم فایل مورد نظر را خط به خط یا به تعداد کاراکتر مشخص بخوانیم. نمونه کد زیر نحوهی خواندن فایل به صورت خط به خط به کمک StreamReader را نمایش میدهد:
string textFile = @ "C:\Temp\Data\Authors.txt"; using(StreamReader file = new StreamReader(textFile)) { int counter = 0; string ln; while ((ln = file.ReadLine()) != null) { Console.WriteLine(ln); counter++; } file.Close(); Console.WriteLine($ "File has {counter} lines."); }
نوشتن فایل در سی شارپ
مانند خواندن از فایل، نوشتن در فایل نیز روشهای متنوعی دارد اما معمولترین این روشها، دو روش استفاده از StreamWriter و File است. در ادامه به بررسی این دو روش میپردازیم:
نوشتن در فایل به کمک StreamWriter در سی شارپ
نمونه کد زیر نحوهی نوشتن اطلاعات در فایل را به کمک StreamWriter نمایش میدهد.
string textFile = @ "C:\Temp\Data\Authors.txt"; using (StreamWriter writer = new StreamWriter(textFile)) { writer.WriteLine("Monica Rathbun"); writer.WriteLine("Vidya Agarwal"); writer.WriteLine("Mahesh Chand"); writer.WriteLine("Vijay Anand"); writer.WriteLine("Jignesh Trivedi"); }
نوشتن در فایل به کمک متدهای کلاس File در سی شارپ
کلاس فایل دو متد پرکاربرد و ساده به نامهای WriteAllLines و WriteAllText برای نوشتن در فایل دارد. متد WriteAllLines یک آرایه را بصورت خط به خط در فایل مینویسد و متد WriteAllText تمام متن را بصورت یکجا در فایل قرار میدهد. به نمونه کدهای زیر توجه نمایید.
نوشتن در فایل به کمک متد WriteAllLines
string textFile = @ "C:\Temp\Data\Authors.txt"; string[] authors = {"Mahesh Chand", "Allen O'Neill", "David McCarter", "Raj Kumar", "Dhananjay Kumar"}; File.WriteAllLines(textFile, authors);
نوشتن در فایل به کمک متد WriteAllText
string textFile = @ "C:\Temp\Data\Authors.txt"; string someText = "C# Corner is a community of software and data developers"; File.WriteAllText(textFile, someText);
در این آموزش سعی شد تا خواندن و نوشتن فایلها در سی شارپ بصورت ساده مورد بحث قرار گیرد. جهت مشاهده پستهای آموزشی دیگر در موضوع زبان برنامه نویسی سی شارپ کلیک کنید.
موفق و پیروز باشید…