Vb.net vbnet文件I/O函数

Vb.net vbnet文件I/O函数,vb.net,file-io,Vb.net,File Io,就一些在MSDN上不清楚的VB net函数,有几个非常简单的问题: 使用fileopen函数时,例如 fileopen(1,Path of file,openmode.binary) ,当文本文件是 要打开的文件?每个字符都是以二进制形式使用的吗 当您使用fileget函数时 fileget(1,variablename) ,变量类型是否取决于从文件中读取的内容?所以如果 variablename被声明为char,fileget函数 从文件中读取字符 fileclose功能只是用来提高效

就一些在MSDN上不清楚的VB net函数,有几个非常简单的问题:

使用fileopen函数时,例如

fileopen(1,Path of file,openmode.binary) 
,当文本文件是 要打开的文件?每个字符都是以二进制形式使用的吗

当您使用fileget函数时

fileget(1,variablename) 
,变量类型是否取决于从文件中读取的内容?所以如果 variablename被声明为char,fileget函数 从文件中读取字符

fileclose功能只是用来提高效率吗?如果 不闭合将类似于无限循环


NET Framework有一个名为full的命名空间,其中包含读取和写入文件文本或二进制文件的方法

此示例是关于如何使用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函数被构造函数替换。fileget被StreamReader的ReadToEnd或ReadLine或ReadBlock方法替换,而文件的关闭被End Using指令替换,该指令关闭并销毁由初始使用创建的StreamReader对象

我建议阅读MSDN上的这篇文章:

没有,你不应该这么做。如果你有一个文本文件,你应该在文本模式下打开它,而不是二进制模式。二进制模式用于读取以二进制模式编写的文件

是的,但您需要根据最初将数据写入文件的方式正确匹配数据类型。如果你搞错了,所有的赌注都输光了。这里没有自动的

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


但正如其他人已经说过的,您确实需要放弃这些陈旧的、过时的函数。它们起源于基础编程语言最早和最黑暗的时代。你以前必须这样做,但谢天谢地,我们现在不这样做了。它们存在于VB.NET中的唯一原因是为了更容易移植旧的VB 6应用程序。即使您正在这样做,移植工作的一部分也应该包括切换到System.IO命名空间提供的函数。这不仅仅是为了保持习惯或使用最新和最好的功能,而是为了节省大量额外的工作和痛苦。

您需要忘记这些功能的存在。它们是用来帮助一个程序员将他的VB6程序移植到.NET的,如果你不需要这样做,它们就不适合使用。感谢你的输入,我知道使用StreamReader和StreamWriter,但我只是需要一些输入来实现我所说的功能。真的很抱歉,您应该将这些函数抛在脑后,使用专门为网络设计的功能。