วิธีการอ่านแฟ้มข้อความ โดยใช้ System.IO ใน Visual Basic 2005 หรือ ใน Visual Basic .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 302309 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual C# .NET ของบทความนี้ ดู 306777.
สำหรับรุ่น Microsoft Visual Basic 6.0 ของบทความนี้ ดู 183638.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายเกี่ยวกับวิธีการที่รับข้อมูลจาก แฟ้มข้อความและการใช้คลาสที่ArrayListเพื่อแสดงข้อมูลดังกล่าวให้กับผู้ใช้

อ่านข้อความแฟ้ม ใน Visual Basic 2005 หรือ ใน Visual Basic .NET

เป็นส่วนสำคัญของการเปิด และอ่านแฟ้มสำหรับการเข้าถึงแบบอ่าน รับเข้า/ส่งออกฟังก์ชันการทำงาน (IO) ถึงแม้ว่าคุณไม่จำเป็นในการเขียนไปยังแฟ้ม ในคำถาม ตัวอย่างนี้เปิดแฟ้มสำหรับการอ่าน ซึ่งจะเป็นประโยชน์สำหรับข้อความ แฟ้มแต่ไม่เหมาะสมสำหรับแฟ้มไบนารี ตัวอย่างนี้ใช้อย่างใดอย่างหนึ่งในหลาย ๆ วิธีที่พร้อมใช้งานสำหรับการเปิดแฟ้ม ถึงแม้ว่าโครงสร้างของข้อมูลจำนวนมาก จะมีการจัดเก็บข้อมูลที่ดึงมาจากไฟล์ คลาArrayListเป็นโครงสร้างที่ง่ายที่สุดที่จะใช้ เมื่อต้องการเปิด และอ่านจาก แฟ้ม ตัวอย่างนี้ใช้วัตถุจาก namespace System.IOโดยเฉพาะคลาSystem.IO.StreamReader

หมายเหตุ ตัวอย่างนี้จำเป็นต้องใช้บางรูปแบบของแฟ้มข้อความ (.txt) ที่ เมื่อต้องการอ่าน

โหลด และอ่านแฟ้มข้อความ จาก Microsoft Visual Basic 2005 หรือ Microsoft Visual Basic .NET ปฏิบัติตาม ขั้นตอนเหล่านี้:
  1. Start Microsoft Visual Studio 2005 หรือ Microsoft Visual Studio .NET สร้างโปรแกรมประยุกต์คอนโซลใหม่ ใน Visual Basic Visual Studio สร้างโมดูลสำหรับคุณ รวมทั้งขั้นตอนการMain()ว่างเปล่า
  2. ตรวจสอบให้แน่ใจว่า โครงการอ้างน้อย namespaceระบบ ใช้คำสั่งนำเข้าใน namespacesระบบSystem.IOและSystem.Collectionsดังนั้นคุณไม่จำเป็นต้องมีสิทธิได้รับการประกาศจาก namespaces เหล่านี้ในภายหลังในรหัสของคุณ คุณต้องใช้คำสั่งเหล่านี้ก่อนที่จะมี ประกาศอื่น ๆ
    Imports System
    Imports System.IO
    Imports System.Collections
    					
  3. เมื่อต้องการเปิดแฟ้มสำหรับการอ่าน สร้างอินสแตนซ์ใหม่ของStreamReaderวัตถุ และส่งผ่านเส้นทางของแฟ้มลงในตัวสร้างเป็นดังนี้:
    Dim objReader As New StreamReader("c:\test.txt")
    					
  4. คุณจะต้องใช้ตัวแปรสายอักขระที่เก็บแต่ละบรรทัด แฟ้มที่เป็นกระบวนการของคุณ เนื่องจากคุณจะสามารถเพิ่มบรรทัดเหล่านี้ไปยังArrayListประกาศ และสร้างวัตถุชนิดนั้นด้วย
    Dim sLine As String = ""
    Dim arrText As New ArrayList()
    					
  5. มีหลายวิธีในการอ่านไฟล์ใน รวมถึงวิธีการReadToEndซึ่งอ่านในแฟ้มทั้งหมดในคราวเดียวกัน อย่างไรก็ตาม สำหรับนี้ ตัวอย่าง คุณสามารถใช้วิธีการReadLineเพื่อนำมาในบรรทัดหนึ่งแฟ้มในแต่ละครั้ง เมื่อสิ้นสุด แฟ้มมีขนาดเกิน วิธีการนี้ส่งกลับค่า "ไม่ ซึ่งช่วยให้วิธีการสิ้นสุด วนรอบของคุณ ขณะที่คุณอ่านแต่ละบรรทัดจากแฟ้ม คุณสามารถใช้วิธีการเพิ่มของArrayListเมื่อต้องการแทรกบรรทัดลงในคลาสArrayListของคุณ
    Do
        sLine = objReader.ReadLine()
        If Not sLine Is Nothing Then
            arrText.Add(sLine)
        End If
    Loop Until sLine Is Nothing
    objReader.Close()
    					
  6. ใช้ "สำหรับแต่ละ" วนในการเขียนเนื้อหาของคุณใหม่ กรArrayListไปยังคอนโซลดังนี้:
    For Each sLine In arrText
        Console.WriteLine(sLine)
    Next
    Console.ReadLine()
    					
  7. บันทึก และเรียกใช้รหัสของคุณ ซึ่งก่อให้เกิดรายการของคุณ แฟ้มไปยังคอนโซล

รายการรหัสโดยสมบูรณ์

Imports System
Imports System.IO
Imports System.Collections

Module Module1

    Sub Main()
        Dim objReader As New StreamReader("c:\test.txt")
        Dim sLine As String = ""
        Dim arrText As New ArrayList()

        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()

        For Each sLine In arrText
            Console.WriteLine(sLine)
        Next
        Console.ReadLine()
    End Sub

End Module
				

อยู่

มีหลายสิ่งที่ต้องระวังเมื่อคุณทำงานกับแฟ้ม I/O รวมถึงรายการต่อไปนี้:
  • เวลาที่คุณเข้าใช้งานไฟล์ ไม่อาจเกิดขึ้นที่ แฟ้มที่คุณกำลังพยายามอ่าน หรือเขียนอาจใช้การไม่อยู่ในระบบหรืออาจ สามารถใช้
  • ตัวอย่างนี้อ่านแฟ้มทั้งหมดลงในหน่วยความจำก่อนที่จะ ประมวลผลแฟ้ม คุณอาจพบสถานการณ์ที่แฟ้มยาวเกินไป ขนาดใหญ่จะถูกเก็บในหน่วยความจำ หรือคุณอาจไม่มีสิทธิ์ในการเข้าถึง แฟ้ม
สถานการณ์เหล่านี้ทำให้เกิดข้อยกเว้นเพื่อที่สามารถยก เป็น แนวทางปฏิบัติที่ดีเสมอเพื่อให้บล็อกลอง... catchเพื่อจัดการกับปัญหาเหล่านี้

คุณสมบัติ

หมายเลขบทความ (Article ID): 302309 - รีวิวครั้งสุดท้าย: 7 มิถุนายน 2556 - Revision: 5.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005applies kbvs2005swept kbhowtomaster kbmt KB302309 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:302309

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com