public static File compressFile(byte[] buff, String fileName)
{
if (buff == null || fileName == null)
return null;
try
{
File zipFile = new File(fileName+".gz");
GZIPOutputStream os = new GZIPOutputStream(new FileOutputStream(zipFile));
BufferedInputStream is = new BufferedInputStream(new ByteArrayInputStream(buff));
int count;
byte data[] = new byte[1024];
while ((count = is.read(data, 0, 1024)) != -1)
{
os.write(data, 0, count);
}
is.close();
os.close();
return zipFile;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
public static byte[] decompressFile(File zipFile)
{
if (!zipFile.exists())
return null;
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPInputStream is = new GZIPInputStream(new FileInputStream(zipFile));
int count;
byte data[] = new byte[1024];
while ((count = is.read(data, 0, 1024)) != -1)
{
baos.write(data, 0, count);
}
is.close();
byte[] buff = baos.toByteArray();
baos.close();
return buff;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
public static String getBase64(String str)
{
if (str == null)
return null;
try
{
return BASE64_ENCODER.encode(str.getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return null;
}
public static String reverseFromBase64(String base64Str)
{
if (base64Str == null)
return null;
try
{
return new String(BASE64_DECODER.decodeBuffer(base64Str),"UTF-8");
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
// store an object to the file of the disk
public static void storeToDisk(Serializable object, File file)
{
java.io.ObjectOutputStream outputStream;
try
{
if (!file.getParentFile().exists())
file.getParentFile().mkdirs();
outputStream = new java.io.ObjectOutputStream(
new java.io.FileOutputStream(file));
outputStream.writeObject(object);
outputStream.close();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// get an object from the file of the disk
public static Serializable getObjectFromDisk(File file)
{
java.io.ObjectInputStream inputStream;
try
{
inputStream = new java.io.ObjectInputStream(
new java.io.FileInputStream(file));
Object obj = inputStream.readObject();
inputStream.close();
return (Serializable) obj;
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* Write the context into the given file.
*
* @param context
* The context.
* @param theFileName
* The file name to write to.
* @throws IOException
* Exception when create the file.
*/
public static void writeToFile(String context, String theFileName)
throws IOException
{
if (theFileName != null && !"".equals(theFileName.trim()))
{
createFilePath(theFileName);
BufferedWriter aWriter = new BufferedWriter(new FileWriter(
theFileName));
aWriter.write(context);
aWriter.close();
}
else
{
throw new IllegalArgumentException("Invalid file name!");
}
}
public static void createFilePath(String fileName)
{
createFilePath(new File(fileName));
}
public static void createFilePath(File file)
{
if (!file.getParentFile().exists())
{
file.getParentFile().mkdirs();
}
}
分享到:
相关推荐
This is a shared library for Android, iOS, OSX, Windows, Linux and webGL to decompress 7z (7zip) files and to compress/decompress zip/gzip (.zip/.gz), LZ4 (.lz4), brotli (.br), fastLZ files and ...
compressed_data = zlib.compress(number_str.encode()) # 使用base64编码压缩后的数据 encoded_data = base64.b64encode(compressed_data) return encoded_data.decode() def decompress_string(encoded_str):...
`pylzma.file_compress()`和`pylzma.file_decompress()`函数可以方便地对文件进行LZMA压缩和解压缩操作,无需先将整个文件加载到内存。 4. **兼容性**:尽管此版本的`pylzma`是针对Python 2.3和Windows 32位系统的...
在使用`zlib`时,我们需要先将字符串转换为字节对象(`encode('utf-8')`),解压后再转换回字符串(`decode('utf-8')`)。 2. **gzip库**: - `gzip`库主要用于处理GZIP格式的压缩文件,它同样基于`DEFLATE`算法。...
compressed_data = gzip.compress(json.dumps(data).encode('utf-8')) headers = {'Content-Type': 'application/json', 'Content-Encoding': 'gzip'} response = requests.post('...
这个过程在源码中可能由一个名为`encode`或`compress`的函数实现。 2. **编码算法**:μ-law和A-law编码算法有所不同,但都包括线性到非线性映射的过程。μ-law编码通过公式`y = sign(x) * log(1 + |x|/μ) / log(1...
- 可能还会有其他辅助函数,如`buildDictionary()`用于初始化字典,`encodeString()`和`decodeString()`分别用于编码和解码字符串。 `123-568`和`G2`这两个文件名可能代表了使用LZW算法处理过的数据文件,可能是...
- `A_Law_Decompress`和`Mu_Law_Decompress`: 对应量化函数的逆操作,即反量化。 通过阅读和分析G711EFilter源代码,我们可以更好地理解G.711编码算法的实际实现,从而有助于优化音频处理系统,提升语音通信的质量...
2. **API接口**:LZ4的Go库提供了几个关键函数,如`Encode`用于压缩数据,`Decode`用于解压缩数据。这些函数通常接受字节切片作为输入,并返回压缩或解压缩后的字节切片。例如: ```go import ( "github....
- `compress()`: 主压缩函数,调用其他辅助函数处理输入数据。 - `decompress()`: 主解压缩函数,恢复原始数据。 - `find_match()`: 在字典中查找匹配的序列。 - `add_to_dict()`: 添加新的字典条目。 - `encode()`:...
2. **压缩操作**:调用`lzfse_encode_buffer`函数压缩数据,该函数接受原始数据缓冲区、目标缓冲区以及它们的大小作为参数。 3. **解压缩操作**:对应地,使用`lzfse_decode_buffer`函数进行解压缩,同样需要原始的...
- **压缩/解压**:`compress`、`decompress` - **打包/解包**:`pack`、`unpack` - **解析/生成**:`parse`、`emit` - **连接/断开**:`connect`、`disconnect` - **发送/接收**:`send`、`receive` - **下载/上传**...
- 方法如`zlib.compress()`, `zlib.decompress()`等。 - **code模块** - 提供交互式解释器会话。 - 类如`code.InteractiveInterpreter`。 #### 四、线程和进程 - **threading模块** - 提供线程管理功能。 - 类...