在VB.NET里操作文本文件
2007-06-05 13:10
441 查看
在.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
使用上面二个方法即可实现使用当前系统对应的编码操作文本文件.可避免乱码的问题....
解决方法就是对文本文件使用字节流操作,即不使用.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
使用上面二个方法即可实现使用当前系统对应的编码操作文本文件.可避免乱码的问题....
相关文章推荐
- 在VB.NET里操作文本文件
- 在VB.NET里操作文本文件 选择自 bpfish 的 Blog
- 在VB.NET里操作文本文件
- VB.NET中操作xml文件(插入节点、修改、删除)
- VB.NET中操作xml文件(插入节点、修改、删除)(转载)
- 在VB.NET中实现拖放操作 DragDrop
- VB.NET操作SQL Server完全模块
- 这么详细的分类 VB/VB.NET源代码网站你见过没有? VB/VB.NET中的每一个方法,每一个操作,每一个函数,每一个类.每一个属性,每一个事件都有相应的范例代码
- 使用VB.Net写一个简单的数据访问层(不能称ORM):CRUD操作
- vb.net 操作数据库
- vb.net操作josn
- vb.net 组件循环操作
- VB.NET使用EXCEL常见操作
- vb.net 字符串的操作 应用
- 在VB.NET中如何操作MySQL数据库
- VB.net中字符串操作函数
- C#(VB.NET)操作Windows自带的防火墙 之 添加/删除允许通过防火墙的例外程序
- [VB.NET]利用vb.net创建一个完全可编辑的DataGrid,从而实现操作Access数据库进行增,删,改的功能,前提是不用任何其他的Button
- VB.Net读写操作INI文件类
- VB.NET操作ACCESS数据库读取存入图片