Input/output with files

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับการเขียนโปรแกรม เพื่ออ่านข้อมูลจากไฟล์และเขียนข้อมูลลงไปบนไฟล์ในภาษา C#

โปรแกรมคอมพิวเตอร์ส่วนมากทำงานกับไฟล์ ซึ่งไฟล์จะแบ่งออกเป็น 2 แบบใหญ่ๆ คือ text file และ binary ไฟล์ ในบางครั้งการเขียนโปรแกรมนั้นเราจำเป็นต้องเก็บข้อมูลในรูปของไฟล์ เช่น การเก็บข้อมูลการตั้งค่า หรือบันทึก log เพื่อนำมาใช้งานในการเปิดโปรแกรมครั้งใหม่

การอ่านค่าจาก text file

ต่อไปเป็นตัวอย่างของโปรแกรมในการอ่านไฟล์จากคอมพิวเตอร์ โดยโปรแกรมจะอ่านไฟล์จากพาทที่กำหนด และแสดงข้อความในไฟล์ ดังโค้ดข้างล่าง

using System;
using System.IO;

class ReadFromFile
{
static void Main(string[] args)
{
string line;
StreamReader file = null;

try {
file = new StreamReader("c:\\file.txt");

while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
}
} catch (FileNotFoundException e) {
Console.WriteLine("Error: File not found.");
} finally {

if (file != null)
{
file.Close();
}
}
}
}

ในตัวอย่างข้างบนเป็นวิธีที่ง่ายที่สุดในการอ่านไฟล์ด้วยภาษา C# เราใช้คลาส StreamReader จากเนมสเปซ System.IO; ที่ใช้สำหรับการอ่านไฟล์ เราเปิดไฟล์จาก "c:\\file.txt" ซึ่งเป็นไฟลฺ์ชื่อ file.txt ในไดร์ C

while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
}

ใน While loop เราใช้เมธอด file.ReadLine() วนซ้ำอ่านข้อความจากไฟล์ที่ละบรรทัดมาเก็บไว้ในตัวแปรชั่วคราว line และแสดงผลออกทางหน้าจอ ถ้าหากไฟล์สิ้นสุดเมธอดจะคืนค่า null กลับมา

นอกจากนี้เรายังตรวจจับความผิดพลาดที่อาจจะเกิดขึ้นในกรณีที่ไม่พบไฟล์ด้วย FileNotFoundException ผลลัพธ์ของโปรแกรมขึ้นอยู่กับไฟล์ของคุณ และคุณต้องกำหนดพาทของไฟล์ให้ถูกต้องด้วย

การเขียนลงบน text file

ตัวอย่างต่อไปเป็นการเขียนข้อความลงเป็น text ไฟล์ในภาษา C# เราจะเขียนลงทีละบรรทัดเช่นเดียวกันกับการอ่านไฟล์

using System;
using System.IO;

class WriteToFile
{
static void Main(string[] args)
{
string line;
StreamWriter file = new StreamWriter("d:\\settings.txt");

file.WriteLine("Writing to file line 1.");
file.WriteLine("Writing to file line 2.");
file.WriteLine("Writing to file line 3.");

Console.Write("Enter your message: ");
line = Console.ReadLine();
file.WriteLine(line);

file.Close();

Console.WriteLine("Writing to file succeed.");
}
}

ในตัวอย่าง เป็นโปรแกรมในการเขียนข้อมูลลงไปบน text file ด้วยคลาส StreamWriter เราเปิดไฟล์ชื่อ settings.txt เพื่อเขียนข้อมูล ถ้าไฟล์ไม่มีอยู่โปรแกรมจะสร้างไฟล์ใหม่ ถ้าหากมีอยู่แล้วโปรแกรมจะเขียนข้อมูลทับ

StreamWriter file = new StreamWriter("d:\\settings.txt");

เราใช้เมธอด file.WriteLine() เชียนข้อมูลลงไปใน text file คุณสามารถใช้เมธอด Write() ได้เช่นกันซึ่งจะไม่ขึ้นบรรทัดใหม่

Enter your message: MarcusCode Tutorial
Writing to file succeed.

นี่เป็นตัวอย่างในการรันโปรแกรม โดยใส่ข้อความว่า "MarcusCode Tutorial" ในบรรทัดสุดท้าย

// settings.txt
Writing to file line 1.
Writing to file line 2.
Writing to file line 3.
MateoCode tutorial

และนี่เป็นผลลัพธ์ของไฟล์ settings.txt ที่ถูกเขียนขึ้น

ในบทนี้ คุณได้เรียนรู้การทำงานกับไฟล์ในภาษา C# โดยการอ่านไฟล์และการเขียนไฟล์ เพื่อเก็บข้อมูลโดยเฉพาะอย่างยิ่งกับ Text file


บทความเกี่ยวกับ Input/output with files

Input/output with files ในภาษา C

ในบทสุดท้ายของบทเรียน นี้ เราจะเรียนรู้เกี่ยวกับไฟล์ในภาษา C เช่น การเปิดไฟล์ การอ่านข้อมูลจากไฟล์ และการเขียนข้อมูลลงไปบนไฟล์ ทั้ง text file และ binary file ใน...

Input/output with files ในภาษา Java

ในบทนี้ คุณจะได้เรียนรู้การทำงานกับไฟล์ การอ่าน text file และการเขียนข้อมูลลงบน text file ในภาษา Java นอกจากหน่วยความจำสำรอง (ram) ที่สามารถเก็บข้อมูลได้ชั่วครา...

Input/output with files ในภาษา C++

ในบทสุดท้ายของบทเรียนภาษา C++ นี้ คุณจะได้เรียนการดำเนินการพื้นฐานกับไฟล์ โดยเราสามารถที่อ่านและเขียนบางอย่างลงไปใน text ไฟล์ fstream เป็นไลบรารีมาตรฐานที่ช่วยใ...

Input/output with files ในภาษา Visual Basic

ในบทนี้เราจะทำงานกับไฟล์ คุณจะได้เรียนรู้เกี่ยวกับการอ่านและเขียน text file ในภาษา Visual Basicโปรแกรมคอมพิวเตอร์มักจะทำงานกับไฟล์ ไฟล์ใช้สำหรับเก็บข้อมูลบนหน่ว...