c#二进制文件的写入和读取

 我来答
一骑当后
2015-07-04 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306442
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部

c#二进制文件的写入和读取,参考代码如下:

using System; 
using System.IO; 

public class FileApp 

    public static void Main() 
    { 
        // 在当前目录创建一个文件myfile.txt,对该文件具有读写权限 
        FileStream fsMyfile = new FileStream("myfile.txt" , FileMode.Create, FileAccess.ReadWrite); 

        // 创建一个数据流写入器,和打开的文件关联 
        StreamWriter swMyfile = new StreamWriter(fsMyfile); 

        // 以文本方式写一个文件 
        swMyfile.WriteLine("Hello, World"); 
        swMyfile.WriteLine("abcdefghijklmnopqrstuvwxyz"); 
        swMyfile.WriteLine("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
        swMyfile.WriteLine("0123456789"); 

        // 冲刷数据(把数据真正写到文件中去) 
        // 注释该句试试看,程序将报错 
        swMyfile.Flush(); 

        // 以文本方式读文件 
        // 创建一个数据流读入器,和打开的文件关联 
        StreamReader srMyfile= new StreamReader(fsMyfile); 

        // 把文件指针重新定位到文件的开始 
        srMyfile.BaseStream.Seek(0, SeekOrigin.Begin); 

        // 打印提示信息 
        Console.WriteLine("****************以文本方式读文件*********************"); 

        // 打印文件文本内容 
        string s1; 
        while((s1 = srMyfile.ReadLine())!=null) 
        { 
            Console.WriteLine(s1); 
        } 
        Console.WriteLine(); 
        // 以文本方式读文件结束 


        // 以二进制方式读文件 
        // 创建一个二进制数据流读入器,和打开的文件关联 
        BinaryReader brMyfile= new BinaryReader (fsMyfile); 

        // 把文件指针重新定位到文件的开始 
        brMyfile.BaseStream.Seek(0, SeekOrigin.Begin); 

        // 打印提示信息 
        Console.WriteLine("****************以二进制方式读文件*********************"); 

        // 打印文件文本内容 
        Byte b1; 
        while(brMyfile.PeekChar()>-1) 
        { 
            b1=brMyfile.ReadByte(); 
            // 13为"\n",表示回车;10为"\r",表示换行 
            if(b1 != 13 && b1 != 10) 
            { 
                Console.Write("{0}",b1.ToString()); 
                Console.Write("."); 
            } 
            else 
            { 
                Console.WriteLine(); 
            } 
        } 
        Console.WriteLine("\n"); 
        // 以二进制方式读文件结束 

        // 关闭以上new的各个对象 
        brMyfile.Close(); 
        srMyfile.Close(); 
        fsMyfile.Close(); 

        // 读取文件属性 
        // 打印提示信息 
        Console.WriteLine("****************读取文件属性*********************"); 

        FileInfo fiMyfile=new FileInfo("myfile.txt"); 
        Console.WriteLine("文件名 : {0}",fiMyfile.Name); 
        Console.WriteLine("文件名(含路径) : {0}",fiMyfile.FullName); 
        Console.WriteLine("文件大小(bytes) : {0}",fiMyfile.Length); 
        Console.WriteLine("文件创建时间 : {0}",fiMyfile.CreationTime); 
    } 
}
章氏SaiKouDa
推荐于2016-07-12 · TA获得超过212个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:210万
展开全部
2进制写法有很多种
用普通的文件流就可以了
只是参数要用byte转换下。
也许C#也有专门的比特方式的重载。
试试吧,中文很简单的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qwe23069
2012-04-24 · TA获得超过792个赞
知道小有建树答主
回答量:553
采纳率:50%
帮助的人:440万
展开全部
用BinaryReader读取就行了,但文件的结构你要知道,一次读多少,开始位置和结束位置,转成你想要的东西,不然的话就是读出来了,也是毫无意思的数字.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d7e336
2012-04-23
知道答主
回答量:47
采纳率:0%
帮助的人:7万
展开全部
路过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式