使用python 2.4和内置ZipFile库,我无法读取非常大的zip文件(大于1或2 GB),因为它想要将未压缩文件的全部内容存储在内存中.有没有其他方法可以做到这一点(使用第三方库或其他一些黑客),或者我必须"解决"并以这种方式解压缩(显然不是跨平台).
我的TCP客户端在数据包中接收图像.图像使用zlib压缩.任务是解压缩图像并将其放在表单上.
我打算将压缩的图像保存在当前目录中,解压缩并在表单上加载解压缩的文件.
第一个问题是保存文件(压缩).zlib可以保存解压缩.
下面的代码加载压缩文件并在解压缩后保存.
private void decompressFile(string inFile, string outFile)
{
System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create);
zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream);
System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open);
try
{
CopyStream(inFileStream, outZStream);
}
finally
{
outZStream.Close();
outFileStream.Close();
inFileStream.Close();
}
}
public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
{
byte[] buffer = new byte[2000];
int len;
while ((len = input.Read(buffer, 0, 2000)) > 0)
{
output.Write(buffer, 0, len);
}
output.Flush();
}
Run Code Online (Sandbox Code Playgroud)
如何将byte []数组直接传递给该函数?我打算将其保存为压缩文件,然后使用压缩文件的位置调用该函数,但我不知道如何从byte []数组中保存文件,也不知道传递byte []数组的方法作为输入文件.
任何帮助将受到高度赞赏.
谢谢.
我目前配置了静态和动态压缩.静态压缩正在工作,但是当通过YSlow和Fiddler检查时,动态压缩不起作用.
在我的applicationHost.config中,我有以下设置:
<urlCompression doStaticCompression="true" doDynamicCompression="true"
dynamicCompressionBeforeCache="true" />
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
maxDiskSpaceUsage="100" minFileSizeForComp="256">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"
dynamicCompressionLevel="1" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="true" />
</staticTypes>
</httpCompression>
<serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="01:00:00" />
Run Code Online (Sandbox Code Playgroud)
我的web.config有:
<urlCompression doStaticCompression="true"
doDynamicCompression="true" dynamicCompressionBeforeCache="true" />
Run Code Online (Sandbox Code Playgroud)
这些模块已经安装,当我使用Failed Request Trace时,我得到了几个动态压缩命中,但没有成功或失败.只是这些类型的结果:
ModuleName DynamicCompressionModule
Notification …Run Code Online (Sandbox Code Playgroud) 在我的ASP.NET web.config中,我有这个:
<urlCompression doDynamicCompression="true" />
Run Code Online (Sandbox Code Playgroud)
我到这儿来找到答案:
http://www.iis.net/ConfigReference/system.webServer/urlCompression
...但它并没有真正解释什么是URL压缩.任何人都可以对此进行简单的解释吗?
试图为我的js库准备好的构建环境.根据网络上的评论,UglifyJS似乎是最好的压缩模块之一,在NodeJS下工作.所以这里是建议缩小代码的最佳方法:
var jsp = require("uglify-js").parser;
var pro = require("uglify-js").uglify;
var orig_code = "... JS code here";
var ast = jsp.parse(orig_code); // parse code and get the initial AST
ast = pro.ast_mangle(ast); // get a new AST with mangled names
ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
var final_code = pro.gen_code(ast); // compressed code here
Run Code Online (Sandbox Code Playgroud)
如此处所示,pro.ast_mangle(ast)应该修改变量名称,但事实并非如此.我从这个管道中得到的只是javascript代码,没有空格.起初我认为我的代码没有针对压缩进行优化,但后来我尝试使用Google Closure并进行了相当大的压缩(包含变量名称和所有内容).
UglifyJS专家,任何暗示我做错了什么?
更新:
实际代码太大,无法在此处引用,但即使是这样的代码段也不会被破坏:
;(function(window, document, undefined) {
function o(id) {
if (typeof id !== …Run Code Online (Sandbox Code Playgroud) 我想使用java代码将文件压缩为zip,rar和7z格式.我还想在指定的位置解压缩这些文件.谁能告诉我如何在java中使用7-zip压缩和解压缩文件?
什么是以下命令的gzip等价物:
tar xvzf /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
Run Code Online (Sandbox Code Playgroud)
我在尝试
gzip -d /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我怎么用gzip做到这一点?
我想将从相机拍摄的图像压缩为png格式,使它们的尺寸更小,所以我使用这个代码:
compressedPictureFile = new File(imagePath);
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
FileOutputStream fOut = new FileOutputStream(compressedPictureFile);
boolean compressed = bitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();
Run Code Online (Sandbox Code Playgroud)
问题是compressedPictureFile实际上比原始图像(从1 Mb到6Mb)更大
我错过了什么?这是减少图像大小的最佳方法吗?
谢谢
以下代码将压缩一个文件.如何压缩多个文件
var gzip = zlib.createGzip();
var fs = require('fs');
var inp = fs.createReadStream('input.txt');
var out = fs.createWriteStream('input.txt.gz');
inp.pipe(gzip).pipe(out);
Run Code Online (Sandbox Code Playgroud)