在VB.NET里操作文本文件

王朝vb·作者佚名  2006-01-09
宽屏版  字体: |||超大  

在.NET里的System.IO.File和System.IO.FileInfo里的OpenText和AppenText等几个方法都是使用UTF-8编码操作文件的.这就导致如果操作不是使用UTF-8编码编写的文件时将会出现乱码现象!!!

解决方法就是对文本文件使用字节流操作,即不使用.NET里提供的OpenText和AppenText等几个方法,而是将文本当成二进制文件来操作,并且在操作时使用Encoding的方法进行相应的解码即可.实现代码如下:

打开文本文件:

Public Function LoadFile(ByVal FileName As String) as String

If FileName= "" Then

Return ""

End If

Try

Dim FileReader As FileStream = File.Open(FileName, FileMode.Open)

Dim FileByte(FileReader.Length) As Byte

FileReader.Read(FileByte, 0, FileReader.Length)

'转成系统对应的编码字符

Dim MyEncoder As Encoding = Encoding.Default

FileReader.Close()

FileReader = Nothing

Return New String(MyEncoder.GetChars(FileByte))

Catch e As Exception

Return ""

End Try

End Sub

保存文件:

Public Sub SaveToFile(ByRef Conten As String, ByVal FileName As String)

'/*将Conten字符串的内容写入FileName文件

If FileName = "" Then

Exit Sub

End If

Try

Dim FileToWrite As FileStream = File.Create(FileName)

Dim rByte() As Byte = Encoding.Default.GetBytes(Conten.ToCharArray)

FileToWrite.Write(rByte, 0, rByte.Length)

FileToWrite.Close()

FileToWrite = Nothing

Catch e As Exception

End Try

End Sub

使用上面二个方法即可实现使用当前系统对应的编码操作文本文件.可避免乱码的问题....

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有