c#文件的存取

zk___23456 2013-03-14 10:22:19
C#语言,从数据库中读取出来的数据如何以二进制的形式存入文件当中,存好后这个文件用记事本打开是乱码(二进制)的形式。
...全文
182 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiangong789 2013-03-14
  • 打赏
  • 举报
回复
首先人家的问题确实是说怎么实现数据库读取的数据2进制存入文本文档形成无法直接读取的文档,我想
引用 12 楼 wangyucai0915 的回复:
主要是要指定编码的。。 C# code?12345678DataSet result = .....//你的查询结果using(FileStream destinationStream = new FileStream(@"C:\a.txt", FileMode.Create, FileAccess.Write)){ try{ new Binar……
应该是OK的
编程小狂人 2013-03-14
  • 打赏
  • 举报
回复
引用 15 楼 zk___23456 的回复:
引用 11 楼 ygy597441072 的回复:引用 6 楼 zk___23456 的回复:引用 5 楼 findcaiyzh 的回复:lz你是要这样做,还是不要这样做?想要做到打开文件是乱码的效果 我给你的那段代码是可以的,我可以给你个例子,邮箱1640522966@qq.com
已发送,请查收
宝_爸 2013-03-14
  • 打赏
  • 举报
回复
如果数据库中存的是文本,就加密下,或者转换下 再保存。 简单的转换可以用Base64编码,Convert.ToBase64String() 虽然还是文本,但是没法读了。
zk___23456 2013-03-14
  • 打赏
  • 举报
回复
引用 11 楼 ygy597441072 的回复:
引用 6 楼 zk___23456 的回复:引用 5 楼 findcaiyzh 的回复:lz你是要这样做,还是不要这样做?想要做到打开文件是乱码的效果 我给你的那段代码是可以的,我可以给你个例子,邮箱
1640522966@qq.com
  • 打赏
  • 举报
回复
记事本是文本工具,你用它去打开二进制文件,为什么你不用它去看图片呢?
Wang-Yucai 2013-03-14
  • 打赏
  • 举报
回复
这个主要是用DataSet序列化来做的。
Wang-Yucai 2013-03-14
  • 打赏
  • 举报
回复
主要是要指定编码的。。

DataSet result = .....//你的查询结果
using(FileStream destinationStream = new FileStream(@"C:\a.txt", FileMode.Create, FileAccess.Write)){
    try{
        new BinaryFormatter().Serialize(destinationStream, result);
    }
    catch(Exception ex){throw ex;}
    finally{destinationStream.Close();}
}
编程小狂人 2013-03-14
  • 打赏
  • 举报
回复
引用 6 楼 zk___23456 的回复:
引用 5 楼 findcaiyzh 的回复:lz你是要这样做,还是不要这样做?想要做到打开文件是乱码的效果
我给你的那段代码是可以的,我可以给你个例子,邮箱
gxingmin 2013-03-14
  • 打赏
  • 举报
回复
直接保存二进制进去就是乱码了
gxingmin 2013-03-14
  • 打赏
  • 举报
回复
晕, 问问题要问清楚,还以为你不要乱码的效果
宝_爸 2013-03-14
  • 打赏
  • 举报
回复
引用 6 楼 zk___23456 的回复:
引用 5 楼 findcaiyzh 的回复:lz你是要这样做,还是不要这样做?想要做到打开文件是乱码的效果
如果数据库中直接就是二进制数据,直接写到文件就可以了 File.WriteAllBytes
zk___23456 2013-03-14
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
当然是乱码了,你保存的又不是文档内容,而是二进制,也许txt根本识别不了文件格式,如果保存的是txt文本的二进制,那么读出来后,要转为字符串,或者存为txt文档打开
我现在就想打开文件的时候是乱码,可是每次用binarywrite这个类进行写入的时候,打开还是文本格式的,没有达到二进制乱码的效果
zk___23456 2013-03-14
  • 打赏
  • 举报
回复
引用 5 楼 findcaiyzh 的回复:
lz你是要这样做,还是不要这样做?
想要做到打开文件是乱码的效果
宝_爸 2013-03-14
  • 打赏
  • 举报
回复
lz你是要这样做,还是不要这样做?
空格键 2013-03-14
  • 打赏
  • 举报
回复
楼主什么问题???
编程小狂人 2013-03-14
  • 打赏
  • 举报
回复
string fileName = "MyNew.data";
            if (File.Exists(fileName))
            {
                MessageBox.Show("当前文件已经存在");
            }
            else
            {
                FileStream fs = new FileStream(fileName, FileMode.Create);
                BinaryWriter writer = new BinaryWriter(fs);
                writer.Write(textBox1.Text);
                for (int i = 0; i < 300; i++)
                {
                    writer.Write(10 + i);
                }
                MessageBox.Show("写入文件成功");
                textBox1.Text = "";
                writer.Close();
                fs.Close();
            }
你可以参考一下,这个就是二进制
gxingmin 2013-03-14
  • 打赏
  • 举报
回复
byte[] bytData = ...; //从数据库二进制字段中读取的数据 string strData = System.Text.Encoding.Default.GetString(bytData); //注意编码格式要一致 System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\a.txt",false,System.Text.Encoding.Default); sw.WriteLine(strData); sw.Close();
bdmh 2013-03-14
  • 打赏
  • 举报
回复
当然是乱码了,你保存的又不是文档内容,而是二进制,也许txt根本识别不了文件格式,如果保存的是txt文本的二进制,那么读出来后,要转为字符串,或者存为txt文档打开

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧