日期:2014-05-18  浏览次数:20841 次

C#文件写入问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication12
{
  class Program
  {
  static void Main(string[] args)
  {
  string str = @"C:\Documents and Settings\Administrator\桌面\ttt.txt";
  FileStream fs = new FileStream(str, FileMode.OpenOrCreate);
  BinaryWriter sw = new BinaryWriter (fs);
  sw.Write("goal");
  sw.Close();

  }
  }
这是我的代码,写到TXT里面goal 前面会出现一个乱码,而且写入的字符不同,乱码也不通。不知道为什么,求解释啊

------解决方案--------------------
为什么要用二进制呢?

直接用StreamWriter好了
------解决方案--------------------
这个不是乱码,是字符串的长度...

因为BinaryWriter.Write(string)方法会先将字符串长度作为一个四字节无符号整数写入然后才将字符串写入...你用这个方法写过的文件已经不是纯文本文件了...