我有一个简单的应用程序,它从数据库中检索数据集并将其转换为xml文件.然后读入此xml文件并压缩为.gz文件.
这似乎效率很低 - 是否可以跳过写入临时.xml文件并将其读回压缩文件的步骤?我可以自动将文件发送到流,将其直接转换为转换后的xml格式吗?
这是我的代码:
public partial class _Default : System.Web.UI.Page
{
DataSet dataset = new DataSet();
string uri = "C:\\tester.xml";
string compressedfileuri = "C:\\tester.gz";
protected void Page_Load(object sender, EventArgs e)
{
//get the dataset
RetrieveData();
//serialize data to a xml file
dataset.WriteXml(uri);
//compress the data
Compress();
}
public void RetrieveData()
{
string connString = ConfigurationManager.ConnectionStrings["Platform"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand("SELECT * FROM expenses.CST_COSTHEADER", conn);
adapter.Fill(dataset);
}
}
public void Compress()
{
using (FileStream fs = new FileStream(uri, FileMode.Open))
{
using (FileStream outFile = File.Create(compressedfileuri))
{
using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
{
fs.CopyTo(Compress);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么不使用以下重载并直接写入 ZIp 流?
DataSet.WriteXml 方法(流、XmlWriteMode)
public void WriteXml(
Stream stream,
XmlWriteMode mode
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |