在VB.NET里操作文本文件
2024-07-10 13:01:03
供稿:网友
在.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
使用上面二个方法即可实现使用当前系统对应的编码操作文本文件.可避免乱码的问题....