CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

C#中度曲文件的问题

楼主quziao()2006-11-01 08:36:10 在 .NET技术 / C# 提问

现在有一个文件,是二进制的,我想从中读取出来放到另一个文件中,但是得到的结果文件中的内容和原文件中的内容不一样了,为什么呢?   请大家帮忙?  
  原代码:  
  private   int   read_from_file(string   fileroot)  
  {  
   
  try  
  {  
  FileStream   fs   =   new   FileStream(fileroot,FileMode.Open,FileAccess.ReadWrite,System.IO.FileShare.Read,50,false);  
  BinaryReader   sr   =   new   BinaryReader(fs);  
   
  //while(true)  
  //{        
  char[]   buffer   =   new   char[530];  
  //sr.ReadBlock(buffer,0,528);  
        sr.Read(buffer,0,528);  
          //把BUFFER中的数据转化成字符串  
  int   len   =   buffer.Length;  
  string   chartemp   =   "";  
  string   linetemp   =   "";  
  //string   temp;  
  for(int   k   =   0;k<len;k++)  
  {  
  chartemp   =   char.ToString(buffer[k]);  
  linetemp   +=chartemp;  
  }  
   
  if(linetemp[0]=='\0')  
  {  
  MessageBox.Show("文件中无数据");  
  sr.Close();  
  return   -1;  
  }  
  temp512   =   linetemp.Substring(0,512);  
  temp16   =   linetemp.Substring(512,16);  
  MessageBox.Show(temp512,"haha");  
   
  //}  
   
  }  
  catch(Exception   ee)  
  {  
  MessageBox.Show("读取文件错误:"+ee.Message,"错误!");  
  return   -1;  
  }  
   
  return   0;  
  }  
   
  //写入TXT文件函数  
  private   int   write_to_file(string   fileroot)  
  {  
                       
  try  
  {  
  FileStream   fs   =   new   FileStream(fileroot,FileMode.Create,FileAccess.ReadWrite,System.IO.FileShare.Read,50,false);  
  BinaryWriter   sw   =   new   BinaryWriter(fs);  
  MessageBox.Show(temp512,"heihei");  
  //sw.Write(temp512);  
  sw.Write(temp512);  
  Console.WriteLine("now       write"+temp512);  
  sw.Close();  
  }  
  catch(Exception   ee)  
  {  
  MessageBox.Show("保存文件错误:"+ee.Message,"错误!");  
  }  
  return   0;  
  }  
  问题点数:20、回复次数:14Top

1 楼net_lover(【孟子E章】)回复于 2006-11-01 08:39:24 得分 0

Use   StreamReader   and   StreamWriter    
  not   FileStreamTop

2 楼viena(维也纳N02)回复于 2006-11-01 08:48:59 得分 0

转化成字符串什么意思?不是二进制文件吗?Top

3 楼quziao()回复于 2006-11-01 08:51:24 得分 0

读: StreamReader   fs   =new   StreamReader(fileroot);  
                                      char[]   buffer   =   new   char[530];  
                                      fs.Read(buffer,0,528);  
                    //把BUFFER中的数据转化成字符串  
   
  写:  
  StreamWriter   fs   =   new     StreamWriter(fileroot);      
                                        fs.Write(temp512);  
   
  结果还是一样的呀?     是不是我在把buffer   转化成字符串时出现问题了,望赐教!!!! Top

4 楼quziao()回复于 2006-11-01 08:52:58 得分 0

to     :viena(维也纳nn)    
   
  往文件里写的时候不支持buffer数组呀,我只好把它转化为字符串了,有别的做法吗?  
  Top

5 楼quziao()回复于 2006-11-01 08:59:09 得分 0

很着急呀,各位高手过来帮忙看看,等着用呢!!!!!!!!!!呵呵Top

6 楼viena(维也纳N02)回复于 2006-11-01 09:00:02 得分 0

谁说不支持buffer数组?Top

7 楼viena(维也纳N02)回复于 2006-11-01 09:04:37 得分 0

FileStream.Write(buffer,   offset,   count)  
  buffer  
  所写入的字节数组  
  offset    
  buffer中的字节偏移量,从此处开始写入    
  count  
  最多写入的字节数Top

8 楼quziao()回复于 2006-11-01 09:04:57 得分 0

to   :viena(维也纳nn)    
   
        我以前没用过C#   ,我看写的参数都是STRING   类型的,如果写buffer   数组怎么写呀?                       谢谢Top

9 楼viena(维也纳N02)回复于 2006-11-01 09:06:49 得分 0

并且也不应该读到char数组  
  二进制文件未必能转为字符  
   
  应用FileStream直接读到Byte字节数组Top

10 楼viena(维也纳N02)回复于 2006-11-01 09:09:59 得分 0

FileStream.Read   方法,参数与Write方法一样的Top

11 楼quziao()回复于 2006-11-01 09:12:02 得分 0

看到了,我试试,先谢谢  
   
   
  一会见Top

12 楼quziao()回复于 2006-11-01 09:15:40 得分 0

FileStream   fs   =new   FileStream(fileroot,FileMode.Open,FileAccess.ReadWrite,System.IO.FileShare.Read,50,false);  
  fs.Read(buffer,0,528);  
   
   
  FileStream   fs   =   new     FileStream(fileroot,FileMode.Create,FileAccess.ReadWrite,System.IO.FileShare.Read,50,false);  
  fs.Write(buffer,0   ,512);  
   
  怎么什么东西都没存进去呀?     是不是原文件的格式有问题??  
   
  Top

13 楼viena(维也纳N02)回复于 2006-11-01 09:23:53 得分 20

调试下咯,监视下buffer的内容~Top

14 楼quziao()回复于 2006-11-01 09:28:40 得分 0

to:   viena(维也纳nn)  
   
  弄好了,谢谢,怎么给分,我还不会呢~!!!!嘿嘿Top

相关问题

关键词

得分解答快速导航

  • 帖主:quziao
  • viena

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo