我有一个顾客信息的文件,但是为了不让用户随意乱改,必须做成二进制文件,
当然后面还要用到这个文件,我怎么转换成二进制文件,并且把它转化回来
当然后面还要用到这个文件,我怎么转换成二进制文件,并且把它转化回来
解决方案 »
- 列表ArrayList复杂排序
- 可不可以在c#的可执行文件中,嵌入其它可执行文件(因为嵌入的这个vc可执行文件不能被显式部署给用户)。
- 重新开贴!!!如何用DATASET来更新、添加、删除数据呢?放分!!!
- 某个控件隐藏后其相邻的panel自动扩展填充
- 使用VSS签入签出xml文件,xml文件变成了乱码。求救。
- 各位對MCAD怎么看?
- 我刚开始学习C#,看随机文档好像很深奥,大家建议怎么学?
- 拔完牙,好痛,散分1000 (5)
- 兄弟目前做的一个项目中,有个叫做库存周转率的,我不知道是什么意思,名词解释,帮帮忙啊,
- 请问如何在C#中用WebBrowser储存一个Web page和查看其源代码???
- 如何给access文件加密
- 请问怎么利用C#对文本文件加密
提供两个
http://blog.csdn.net/Knight94/archive/2006/07/04/876493.aspx
http://blog.csdn.net/Knight94/archive/2006/07/03/868951.aspx
BinaryWriter
这两个类可以帮你.
是以二进制读写入文件的
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.VisualBasic;namespace TextIO
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
char[] chars; UncodeToUtf8 uc2u8 = new UncodeToUtf8(richTextBox1.Text);
SaveText st = new SaveText(richTextBox1.Text); //保存为U8格式的文本文件
FileStream fs1 = new FileStream(textBox1.Text, FileMode.OpenOrCreate);
fs1.Write(uc2u8.content, 0, uc2u8.content.Length);
fs1.Flush(); //对字节数组进行反编码,UTF8解码
UTF8Encoding u8Code = new UTF8Encoding();
chars = u8Code.GetChars(uc2u8.content);
MessageBox.Show(new StringBuilder().Insert(0, chars).ToString()); //保存为PC格式的文本文件
FileStream fs2 = new FileStream(textBox2.Text, FileMode.OpenOrCreate);
fs2.Write(st.content, 0, st.content.Length);
fs2.Flush(); //对字节数组进行反编码,PC解码
Encoding defaultCode = Encoding.Default;
chars = defaultCode.GetChars(st.content);
MessageBox.Show(new StringBuilder().Insert(0, chars).ToString());
} private void button2_Click(object sender, EventArgs e)
{
//将richTextBox1中读取到的数据进行编码
UncodeToUtf8 uc2u8 = new UncodeToUtf8(richTextBox1.Text);
SaveText st = new SaveText(richTextBox1.Text); FileStream fs1 = new FileStream(textBox1.Text, FileMode.OpenOrCreate);
BinaryWriter bWriter1 = new BinaryWriter(fs1);
MessageBox.Show(uc2u8.content.Length.ToString());
//将byte转换成int32之后保存为二进制文件
for (int i = 0; i < uc2u8.content.Length; i++)
{
bWriter1.Write(Convert.ToInt32(uc2u8.content[i]));
}
bWriter1.Flush();
bWriter1.Close();
fs1.Close();
} private void button3_Click(object sender, EventArgs e)
{
FileStream fs1 = new FileStream(textBox3.Text, FileMode.OpenOrCreate);
BinaryReader bRead = new BinaryReader(fs1);
ArrayList aList = new ArrayList();
//读取二进制文件的数据,存放在ArrayList集合中
while (bRead.PeekChar() != -1)
{
aList.Add(bRead.ReadInt32());
}
//创建byte数组
byte[] bytes = new byte[aList.Count];
//将ArrayList中的int32数据转换成byte后,存放在bytes数组中
for (int i = 0; i < bytes.Length; i++ )
{
bytes[i] = Convert.ToByte((int)aList[i]);
}
//将bytes数组转换成u8格式的字符串
string s = new UTF8Encoding(true).GetString(bytes);
MessageBox.Show(s);
bRead.Close();
fs1.Close();
}
} public class SaveText
{
public byte[] content; public SaveText(string text)
{
//使用默认的编码方式对文本进行编码
Encoding encode = Encoding.Default;
content = encode.GetBytes(text);
}
} public class UncodeToUtf8
{
public byte[] content; public UncodeToUtf8(string text)
{
//使用UTF8对文本进行编码
content = new UTF8Encoding(true).GetBytes(text);
}
}
}