输出到控制台屏幕正常,但是输出到文件就错了:(
using System;
using System.IO;
class Class1
{
static void Main()
{
L6: Console.WriteLine("请输入含有中文的文本文件(gb2312):");
string MAIL_BODY_ORIGINAL_PATH = Console.ReadLine().Trim();
if (!File.Exists(MAIL_BODY_ORIGINAL_PATH)) { Console.WriteLine("文件不存在!\n"); goto L6 ;}
Console.WriteLine("正在载入文本文件。。。。");
StreamReader body_file_sr = new StreamReader(MAIL_BODY_ORIGINAL_PATH,System.Text.Encoding.GetEncoding("gb2312"));
string main_body = body_file_sr.ReadToEnd();
body_file_sr.Close();
Console.WriteLine("载入成功!\n");
L7: Console.WriteLine("请输入输出文件名:");
string OUTPUT_FILE = Console.ReadLine().Trim();
if ( OUTPUT_FILE.Length == 0 )
{Console.WriteLine("输出文件名不能为空!\n"); goto L7 ;}
//在字符串main_body末尾添加长度不等的16进制随机字符串
Random rnd_num = new Random();
int ii = rnd_num.Next(1,300);
for ( int i=0 ; i <= ii ; i++ )
{
switch( rnd_num.Next(1,8) )
{
case 1 :{ main_body = main_body + rnd_num.Next(0xa,0xf).ToString("x") + "\n"; break ; }
case 2 :{ main_body = main_body + rnd_num.Next(0xaa,0xff).ToString("x") + "\n"; break ; }
case 3 :{ main_body = main_body + rnd_num.Next(0xaaa,0xfff).ToString("x") + "\n"; break ; }
case 4 :{ main_body = main_body + rnd_num.Next(0xaaaa,0xffff).ToString("x") + "\n"; break ; }
case 5 :{ main_body = main_body + rnd_num.Next(0xaaaaa,0xfffff).ToString("x") + "\n"; break ; }
case 6 :{ main_body = main_body + rnd_num.Next(0xaaaaaa,0xffffff).ToString("x") + "\n"; break ; }
case 7 :{ main_body = main_body + rnd_num.Next(0xaaaaaaa,0xfffffff).ToString("x") + "\n"; break ; }
default : { main_body = main_body + "\n" ; break ; }
}
}
//输出到控制台屏幕正常
Console.WriteLine(main_body);
//输出到文件,用notepad打开就发现所有的换行符都错啦!
//全部变成了一个一个黑色方块!:(
FileStream temp_fs = File.Create( OUTPUT_FILE) ;
StreamWriter temp_sw = new StreamWriter((Stream)temp_fs,System.Text.Encoding.GetEncoding("gb2312"));
temp_sw.Write(main_body);
temp_sw.Close();
temp_fs.Close();
Console.Write("完成输出到文件!\n输入任意字符关闭!");
Console.ReadLine();
}
}