文件I / O函数VB net

时间:2013-05-25 20:15:21

标签: vb.net file-io

关于一些在MSDN上不明确的VB网络功能,我们有一些非常简单的问题:

  1. 使用 fileopen 函数EG

    fileopen(1,Path of file,openmode.binary) 
    

    ,当 text 文件是的时,openmode.binary实际上是如何工作的 要打开的文件?每个字符是否以二进制形式使用?

  2. 使用 fileget 功能时;

    fileget(1,variablename) 
    

    ,变量类型是否取决于从文件中读取的内容?因此,如果 variablename被声明为char,fileget函​​数是否正常 从文件中读取字符?

  3. fileclose 功能是否仅用于改善 efficieny ? EG如果 未关闭将类似于无限循环?

2 个答案:

答案 0 :(得分:3)

.NET Framework有一个名为System.IO的命名空间,其中包含读写文件(文本或二进制)的方法

此示例taken from MSDN是有关如何使用VB.NET

读取文本文件的示例
Public Shared Sub Main()
    Try 
        Using sr As New StreamReader("TestFile.txt")
            Dim line As String
            line = sr.ReadToEnd()
            Console.WriteLine(line)
        End Using 
    Catch e As Exception
        Console.WriteLine("The file could not be read:")
        Console.WriteLine(e.Message)
    End Try 
End Sub 

这里fileopen函数被StreamReader构造函数替换。文件名由StreamReader的ReadToEnd(或ReadLineReadBlock)方法替换,而文件的关闭由关闭并销毁StreamReader对象的End Using istruction替换由最初的使用。

创建

我建议在MSDN上阅读这篇文章:Common I/O tasks

答案 1 :(得分:1)

  1. 没有,你不应该这样做。如果您有文本文件,则应以文本模式而不是二进制模式打开它。二进制模式用于读取以二进制模式写出的文件。

  2. 是的,但您应该根据最初将数据写入文件的方式正确匹配数据类型。如果你弄错了,所有赌注都会被取消。这里没有什么是自动的。

  3. 不,您不关闭文件以提高效率,因为您已完成使用它而关闭它。不关闭文件会导致资源泄漏。在您的应用程序关闭之前,该文件不会关闭,然后操作系统将自动释放它。我想你可以考虑泄漏资源效率低下,但我不认为这就是你的意思。它不像无限循环。该应用程序一直在运行,因为您已锁定该文件,因此该文件无法打开或被其他任何内容读取。

  4. 但是就像其他人已经说过的那样,你真的需要放弃这些旧的,过时的功能。他们来自BASIC编程语言最早和最黑暗的日子。你曾经以这种方式做事,但谢天谢地,我们不再这样了。它们存在于VB.NET中的唯一原因是为了更容易移植旧的VB 6应用程序。即使这就是您正在做的事情,部分移植工作也应该涉及切换到System.IO命名空间提供的功能。它不仅仅是为了惯用或者使用最新的和最好的,而是为了节省自己很多额外的工作和痛苦。

相关问题