关于数据存储问题 想将一个程序需要的参数存在外部文件中,希望外部文件里面的数据存成那种乱码形式的。主要是为了防止客户随便改数据。求思路。因为第一次接触这方面的东西,希望可以给个提示,如何实现.叩谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将数据加密再存入, 读取时解密. 我这有一个利用GZIP算法将数据压缩与解压的示例, 供你参考:#region Using directivesusing System;using System.Collections.Generic;using System.Text;using System.IO;using System.IO.Compression;#endregionnamespace Compressor{ class Program { static void SaveCompressedFile(string filename, string data) //文件名, 传入的数据 { FileStream fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write); GZipStream compressionStream = new GZipStream(fileStream, CompressionMode.Compress); //GZIP算法, 可用DeflateStream(Deflate算法)替换GZipStream StreamWriter writer = new StreamWriter(compressionStream); writer.Write(data); //写入数据 writer.Close(); } static string LoadCompressedFile(string filename) //从指定的文件名中恢复数据 { FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read); GZipStream compressionStream = new GZipStream(fileStream, CompressionMode.Decompress); //CompressionMode.Decompress为解压, Compress为压缩 StreamReader reader = new StreamReader(compressionStream); string data = reader.ReadToEnd(); reader.Close(); return data; } static void Main(string[] args) { try { string filename = "compressedFile.txt"; Console.WriteLine( "Enter a string to compress (will be repeated 1000 times):"); string sourceString = Console.ReadLine(); StringBuilder sourceStringMultiplier = new StringBuilder(sourceString.Length * 100); for (int i = 0; i < 100; i++) { sourceStringMultiplier.Append(sourceString); } sourceString = sourceStringMultiplier.ToString(); Console.WriteLine("Source data is {0} bytes long.", sourceString.Length); SaveCompressedFile(filename, sourceString); //压缩数据 Console.WriteLine("\nData saved to {0}.", filename); FileInfo compressedFileData = new FileInfo(filename); Console.WriteLine("Compressed file is {0} bytes long.", compressedFileData.Length); string recoveredString = LoadCompressedFile(filename); //解压数据 recoveredString = recoveredString.Substring(0, recoveredString.Length/100); Console.WriteLine("\nRecovered data: {0}", recoveredString); Console.ReadKey(); } catch (IOException ex) { Console.WriteLine("An IO exception has been thrown!"); Console.WriteLine(ex.ToString()); Console.ReadKey(); } } }} 如何用JS判断浏览器刷新还是关闭? C#怎么设置while循环每一秒循环一次并统计次数 ComBox问题 再来2个C#小问题 winform:开发类似于msdn的界面 关于数据库写法的简单的问题,希望大家帮忙解答 关于日期格式问题(日/月/年)? 如果将ArrayList绑定到DataGrid (winform) 有一个项目,需要外包,哪位朋友想? 简单问题:如何取datagrid某列的宽度,谢谢 如何隐藏gridview被选中的checkbox 20090818类里面属性和字段的区别?
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Compression;#endregionnamespace Compressor
{
class Program
{
static void SaveCompressedFile(string filename, string data) //文件名, 传入的数据
{
FileStream fileStream =
new FileStream(filename, FileMode.Create, FileAccess.Write);
GZipStream compressionStream =
new GZipStream(fileStream, CompressionMode.Compress); //GZIP算法, 可用DeflateStream(Deflate算法)替换GZipStream
StreamWriter writer = new StreamWriter(compressionStream);
writer.Write(data); //写入数据
writer.Close();
} static string LoadCompressedFile(string filename) //从指定的文件名中恢复数据
{
FileStream fileStream =
new FileStream(filename, FileMode.Open, FileAccess.Read);
GZipStream compressionStream =
new GZipStream(fileStream, CompressionMode.Decompress); //CompressionMode.Decompress为解压, Compress为压缩
StreamReader reader = new StreamReader(compressionStream);
string data = reader.ReadToEnd();
reader.Close();
return data;
} static void Main(string[] args)
{
try
{
string filename = "compressedFile.txt"; Console.WriteLine(
"Enter a string to compress (will be repeated 1000 times):");
string sourceString = Console.ReadLine();
StringBuilder sourceStringMultiplier =
new StringBuilder(sourceString.Length * 100);
for (int i = 0; i < 100; i++)
{
sourceStringMultiplier.Append(sourceString);
}
sourceString = sourceStringMultiplier.ToString();
Console.WriteLine("Source data is {0} bytes long.", sourceString.Length); SaveCompressedFile(filename, sourceString); //压缩数据
Console.WriteLine("\nData saved to {0}.", filename); FileInfo compressedFileData = new FileInfo(filename);
Console.WriteLine("Compressed file is {0} bytes long.",
compressedFileData.Length); string recoveredString = LoadCompressedFile(filename); //解压数据
recoveredString = recoveredString.Substring(0, recoveredString.Length/100);
Console.WriteLine("\nRecovered data: {0}", recoveredString); Console.ReadKey();
}
catch (IOException ex)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(ex.ToString());
Console.ReadKey();
}
}
}
}