壓縮樣本示範了如何從檔案讀取資料和寫壓縮資料到一個新的檔案,以及如何讀和寫資料壓縮資料解壓到一個新檔案。具體地說,這個樣本顯示了以下內容:壓縮資料從一個現有•檔案並將其寫入一個新的檔案。•閱讀壓縮資料從檔案和壓縮。function data(compressAlgorithm) {
var testObject = [1, 2, 3, "sampletext", { value: "sampleobject" }];
try {
//
// NOTE: Read and write positions are shared when IInputStream and IOutputStream
// are queried directly from IRandomAccessStream, so we need either rewind stream
// before reading or get separate streams using getInput/OutputStreamAt
//
var stream = new Windows.Storage.Streams.InMemoryRandomAccessStream();
var compressor;
//
// It is safe to pass-through undefined value as compressAlgorithm in which case default algorithm (Xpress) will be used.
// For the purposes of this sample both usages are shown.
//
if (typeof(compressAlgorithm) === "undefined") {
//
// If you don't have any specific algorithm requirements - this is recommended way to initialize Compressor object
//
compressor = new WinJS.Compressor(stream.getOutputStreamAt(0));
} else {
compressor = new WinJS.Compressor(stream.getOutputStreamAt(0), compressAlgorithm);
}
var decompressor = new WinJS.Decompressor(stream.getInputStreamAt(0));
showProgress("Compressor object created");
compressor.compressAsync(testObject).then(function () {
showProgress("Test object compressed");
compressor.close();
return decompressor.readObjectAsync();
}, onError).then(function (decompressedObject) {
decompressor.close();
showProgress("Test object decompressed: " + decompressedObject);
if (JSON.stringify(testObject) === JSON.stringify(decompressedObject)) {
showProgress("Test object matches decompressed one");
} else {
onError(new Error("Test object doesn't match decompressed one"));
}
}, onError);
// Alternatively:
/*
showProgress("Compressor object created");
compressor.compressAsync(testObject).then(function () {
showProgress("Test object compressed");
decompressor.readObjectAsync().then(function (decompressedObject) {
showProgress("Test object decompressed: " + decompressedObject);
if (JSON.stringify(testObject) == JSON.stringify(decompressedObject)) {
showProgress("Test object matches decompressed one");
} else {
onError(new Error("Test object doesn't match decompressed one"));
}
}, onError)
}, onError);
*/
} catch (e) {
onError(e);
}
}
完整樣本:/Files/risk/windows8/壓縮sample.rar