如何读取和写入到文本文件中,通过使用 Visual Basic 2005年或 Visual Basic。NET

文章翻译 文章翻译
文章编号: 315828 - 查看本文应用于的产品
这篇文章的 Microsoft Visual Basic 6.0 版本,请参阅 183638.
展开全部 | 关闭全部

本文内容

概要

本文演示如何读取和写入通过使用 Microsoft Visual Basic 2005年或 Microsoft Visual Basic 的文本文件。NET。

要求

下表列出了推荐使用的硬件、 软件、 网络基础结构和所需的服务包:
  • 2005 Visual Basic 或 Visual Basic。NET
本文假定您熟悉下列主题:
  • 2005 Visual Basic 或 Visual Basic。NET

读取和写入文本文件

"读取文本文件"一节演示如何读取文本文件,使用StreamReader对象。"写入文本文件 (示例 1)"部分中,"写入文本文件 (示例 2)"一节演示如何使用StreamWriter类,将文本写入文件。

读取文本文件

下面的代码使用StreamReader类,以打开、 读取,并关闭该文本文件。您可以传递StreamReader构造函数自动打开该文件的文件的路径名称。ReadLine方法读取每一行文本,并增加文件指针读取下的一行。当ReadLine方法达到文件结尾时,它将返回Nothing
  1. 开始 Microsoft Visual Studio 2005年或 Microsoft Visual Studio。NET。
  2. Visual Basic 2005年或 Visual Basic 中创建一个新的控制台应用程序.NET。
  3. Module1.vb 文件的顶部添加以下代码:
    Imports System.IO
    					
  4. 将下面的代码添加到的Sub Main过程中。
    Dim objStreamReader As StreamReader
        Dim strLine As String
    
        'Pass the file path and the file name to the StreamReader constructor.
        objStreamReader = New StreamReader("C:\Boot.ini")
    
        'Read the first line of text.
        strLine = objStreamReader.ReadLine
    
        'Continue to read until you reach the end of the file.
        Do While Not strLine Is Nothing
    
          'Write the line to the Console window.
          Console.WriteLine(strLine)
    
          'Read the next line.
          strLine = objStreamReader.ReadLine
        Loop
    
        'Close the file.
        objStreamReader.Close()
    
        Console.ReadLine()
    					
  5. 调试菜单上单击开始编译并运行该应用程序。按 ENTER 关闭控制台窗口。

    控制台窗口显示 Boot.ini 文件。注意Boot.ini 文件中的内容可能会因配置配置。下面的输出是一个示例 Boot.ini 文件:
    [boot loader]
    timeout=5
    default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
    
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Professional" /fastdetect
    C:\ = "Windows 98"
    						

写入文本文件 (示例 1)

下面的代码使用StreamWriter类,以打开、 写入,并关闭该文本文件。类似到StreamReader,可以传递给StreamWriter构造函数自动打开该文件的文件的路径名称。WriteLine方法写入文本文件的完整文本行。
  1. 开始 Visual Studio 2005年或 Visual Studio。NET。
  2. Visual Basic 2005年或 Visual Basic 中创建一个新的控制台应用程序.NET。
  3. Module1.vb 的顶部添加以下代码:
    Imports System.IO
    					
  4. Sub Main过程中添加以下代码:
    Dim objStreamWriter As StreamWriter
        
       'Pass the file path and the file name to the StreamWriter constructor.
       objStreamWriter = New StreamWriter("C:\Testfile.txt")
    
       'Write a line of text.
       objStreamWriter.WriteLine("Hello World")
    
       'Write a second line of text.
       objStreamWriter.WriteLine("From the StreamWriter class")
    
       'Close the file.
       objStreamWriter.Close()
    					
  5. 调试菜单上单击开始编译并运行该应用程序。

    此代码创建此类在文本编辑器中的驱动器 c。 打开 Test.txt 上名为 Test.txt 文件作为记事本。Test.txt 包含两行文本:
    Hello World
    From the StreamWriter class
    						

写入文本文件 (示例 2)

下面的代码使用StreamWriter类,以打开、 写入,并关闭该文本文件。与不同前面的示例中,此代码将两个附加参数传递构造函数。

第一个参数是文件的路径和文件名该文件。第二个参数,则返回 True,指定打开文件以追加模式。如果指定的第二个参数,该文件的内容为覆盖每次运行该代码。第三个参数指定Unicode ,因此 Unicode 文件进行编码的StreamWriter 。您还可以指定以下第三个参数的编码方法:
  • ASCII
  • BigEndianUnicode
  • UTF7
  • UTF8
Write方法是与WriteLine方法类似,不同之处在于将写入不会自动嵌入回车符/换行符 (CR/LF)字符组合。这非常有用,如果您要写入一个字符,在时间。
  1. 开始 Visual Studio 2005年或 Visual Studio。NET。
  2. Visual Basic 2005年或 Visual Basic 中创建一个新的控制台应用程序.NET。
  3. Module1.vb 的顶部添加以下代码:
    Imports System.IO
    Imports System.Text
    					
  4. 将下面的代码添加到基于现有代码的Sub Main过程中:
    Dim objStreamWriter As StreamWriter
       Dim x As Long
        
       'Open the file.
       objStreamWriter = New StreamWriter("C:\Test2.txt", True, _
          Encoding.Unicode)
    
       'Write out the numbers 1 through 10 on the same line.
       For x = 1 To 10
         objStreamWriter.Write(x)
       Next x
        
       'Close the file.
       objStreamWriter.Close()
    					
  5. 调试菜单上单击开始编译并运行该应用程序。

    此代码创建此类在文本编辑器中的 C.打开 Test2.txt 驱动器上名为 Test2.txt 的文件作为记事本。Test2.txt 包含单个文本行:
    12345678910
    							
    注意如果多次运行该代码,则"123456789"文本在同一行上重复出现。

完整代码列表

'Read a Text File
Imports System.IO
Module Module1

    Sub Main()
        Dim objStreamReader As StreamReader
        Dim strLine As String

        'Pass the file path and the file name to the StreamReader constructor.
        objStreamReader = New StreamReader("C:\Boot.ini")

        'Read the first line of text.
        strLine = objStreamReader.ReadLine

        'Continue to read until you reach the end of the file.
        Do While Not strLine Is Nothing

            'Write the line to the Console window.
            Console.WriteLine(strLine)

            'Read the next line.
            strLine = objStreamReader.ReadLine
        Loop

        'Close the file.
        objStreamReader.Close()

        Console.ReadLine()
    End Sub
End Module

'Write a Text File: Version 1
Imports System.IO
Module Module1

    Sub Main()
        Dim objStreamWriter As StreamWriter

        'Pass the file path and the file name to the StreamWriter constructor.
        objStreamWriter = New StreamWriter("C:\Text.txt")

        'Write a line of text.
        objStreamWriter.WriteLine("Hello World")

        'Write a second line of text.
        objStreamWriter.WriteLine("From the StreamWriter class")

        'Close the file.
        objStreamWriter.Close()

    End Sub
End Module

'Write a Text File: Version 2
Imports System.IO
Imports System.Text
Module Module1

    Sub Main()
        Dim objStreamWriter As StreamWriter
        Dim x As Long

        'Open the file.
        objStreamWriter = New StreamWriter("C:\Test2.txt", True, _
           Encoding.Unicode)

        'Write out the numbers 1 through 10 on the same line.
        For x = 1 To 10
            objStreamWriter.Write(x)
        Next x

        'Close the file.
        objStreamWriter.Close()
    End Sub

End Module
				

故障排除

每当您输入或输出文件,是很好的编程尝试结束 Try块中的代码自动换行,在发生错误的做法。一些可能的错误包括文件不存在或正在使用的文件。

参考

有关详细信息,请访问以下 Microsoft 网站站点:
如何实现...读取文本文件吗?
http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx


如何实现...读取和写入较大的文件?
http://msdn.microsoft.com/en-us/library/6ka1wd3w (v=vs.80).aspx

StreamReader 类
http://msdn.microsoft.com/en-us/library/system.io.streamreader (v=vs.71).aspx

StreamWriter 类
http://msdn.microsoft.com/en-us/library/system.io.streamwriter (v=vs.71).aspx

属性

文章编号: 315828 - 最后修改: 2012年6月7日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual .NET 2002 标准版
关键字:?
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315828 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 315828
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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