zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#读取中文字符及清空缓冲区的实现代码

c#中文字符代码 实现 读取 清空 缓冲区
2023-06-13 09:14:25 时间
开时始,得到的中文文件中的字符是乱码的,鸟符号看的头晕。于是就细究streamreader读取的编码格式,默认的编码是ascii,单字节的,就尝试utf8,乱码;尝试gb2312,OK!
可另一个问题又出现了,得到的两个文件的行数都不到1500行,尝试N次还是不行,很郁闷。google了下,看到trycatch,就想到释放缓冲区,结果很HAPPY!
复制代码代码如下:

privatestaticvoidFnFileProcess()
{
StreamReaderreader=newStreamReader(@"d:\1500.txt",Encoding.GetEncoding("GB2312"));
StreamWriterwriterEn=newStreamWriter(@"d:\English.txt",false,Encoding.UTF8,1024);
StreamWriterwriterCh=newStreamWriter(@"d:\Chinese.txt",false,Encoding.UTF8,1024);
try
{
inti=1;
for(Stringline=reader.ReadLine();line!=null;line=reader.ReadLine())
{
if(i%2==1)
{
writerEn.WriteLine(line);
}
else
{
writerCh.WriteLine(line);
}
i++;
}
Console.WriteLine(i+"\tOK");
}
catch(Exceptionex)
{
Console.WriteLine(ex.ToString());
}
finally
{
//不清空缓冲区,得到的文件总是少几十行
writerEn.Flush();
writerCh.Flush();
}
}