FileStream afs = new FileStream(@"D:\a.txt", FileMode.OpenOrCreate);
           FileStream bfs = new FileStream(@"E:\b.txt", FileMode.Create);
           StreamWriter wafs = new StreamWriter(afs);
           StreamReader rafs = new StreamReader(afs);
           StreamWriter wbfs = new StreamWriter(bfs);
           string str = Console.ReadLine();
           wafs.Write(str);
           wafs.Flush();
           string rstr = rafs.ReadToEnd();
           //Console.WriteLine("_______________");
           Console.WriteLine(rstr);  //控制台没有字符串输出
           wbfs.Write(rstr); //b.txt里面是空的
           wbfs.Flush();
           Console.ReadLine();我想先向a.txt写入数据,然后读出里面的数据再写入b.txt  谢谢了

解决方案 »

  1.   


    读文件核心代码:
     
    byte[] byData = new byte[100];
    char[] charData = new char[1000];
     
    try
    {
    FileStream sFile = new FileStream("文件路径",FileMode.Open);
    sFile.Seek(55, SeekOrigin.Begin);
    sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
    }
    catch (IOException e)
    {
    Console.WriteLine("An IO exception has been thrown!");
    Console.WriteLine(e.ToString());
    Console.ReadLine();
    return;
    }
    Decoder d = Encoding.UTF8.GetDecoder();
    d.GetChars(byData, 0, byData.Length, charData, 0);
    Console.WriteLine(charData);
    Console.ReadLine();
     
    写文件核心代码:
     
    FileStream fs = new FileStream(文件路径,FileMode.Create);
    //获得字节数组
    byte [] data =new UTF8Encoding().GetBytes(String);
    //开始写入
    fs.Write(data,0,data.Length);
    //清空缓冲区、关闭流
    fs.Flush();
    fs.Close();
      

  2.   

    你的原因是因为你根本没有写入东西,当让是null了。
      

  3.   

    FileStream afs = new FileStream(@"D:\a.txt", FileMode.OpenOrCreate);
                FileStream bfs = new FileStream(@"E:\b.txt", FileMode.Create);
                StreamWriter wafs = new StreamWriter(afs);
                StreamWriter wbfs = new StreamWriter(bfs);
                StreamReader rafs = new StreamReader(afs);
                string str = Console.ReadLine();
                wafs.Write(str);//将字符写入流
                wafs.Flush();//结束写入
                afs.Position = 0;//写入a.txt后需要把流的起点设置下,这样rafs读出来的才不是空的
                string rstr = rafs.ReadToEnd();
                //Console.WriteLine("_______________");
                Console.WriteLine(rstr);  //控制台没有字符串输出
                wbfs.Write(rstr); //b.txt里面是空的
                wafs.Flush();
                wbfs.Flush();