我正在尝试使用以下Java代码来压缩和解压缩String。但是,从新的ByteArrayInputStream对象中创建新的GZipInputStream对象的行将引发“
java.util.zip.ZipException:不是GZIP格式”异常。有谁知道如何解决这个问题?
String orig = ".............";
// compress it
ByteArrayOutputStream baostream = new ByteArrayOutputStream();
OutputStream outStream = new GZIPOutputStream(baostream);
outStream.write(orig.getBytes());
outStream.close();
String compressedStr = baostream.toString();
// uncompress it
InputStream inStream = new GZIPInputStream(new ByteArrayInputStream(compressedStr.getBytes()));
ByteArrayOutputStream baoStream2 = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int len;
while((len = inStream.read(buffer))>0)
baoStream2.write(buffer, 0, len);
String uncompressedStr = baoStream2.toString();
混合String
和byte[]
;
那永远不适合。并且仅适用于具有相同编码的相同OS。并非每个byte[]
都可以转换为String
,并且转换回可以提供其他字节。
在compressedBytes
需求不能代表一个字符串。
在getBytes
和中明确设置编码new String
。
String orig = ".............";
// Compress it
ByteArrayOutputStream baostream = new ByteArrayOutputStream();
OutputStream outStream = new GZIPOutputStream(baostream);
outStream.write(orig.getBytes("UTF-8"));
outStream.close();
byte[] compressedBytes = baostream.toByteArray(); // toString not always possible
// Uncompress it
InputStream inStream = new GZIPInputStream(
new ByteArrayInputStream(compressedBytes));
ByteArrayOutputStream baoStream2 = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int len;
while ((len = inStream.read(buffer)) > 0) {
baoStream2.write(buffer, 0, len);
}
String uncompressedStr = baoStream2.toString("UTF-8");
System.out.println("orig: " + orig);
System.out.println("unc: " + uncompressedStr);
我试图使用以下Java代码来压缩和解压字符串。但是,从一个新的ByteArrayInputStream对象创建一个新的GZipInputStream对象的那一行抛出了一个“java.util.zip.ZipException:Not in GZIP格式”异常。有人知道怎么解决这个问题吗?
DB URL:jdbc:mysql://localhost/phpmyadmin/ JDBC驱动程序类:com.mysql.jdbc.Driver 用户名:根 密码:
我有一个带有Spring Data JPA的Web应用程序。我为一些实体创建了扩展JpaRepository的存储库。但是,当我尝试部署应用程序时,会遇到以下错误。不知道为什么会抛出错误 应用程序错误日志: pom.xml 应用程序上下文.xml persistence.xml JpaRepostory接口
为了测试目的,我正在玩vaadin 14.2.2。然而,我立即使用网格解决了第一个问题。https://vaadin.com/docs/v14/flow/components/tutorial-flow-grid.html中的示例 不在可视化中生成输出。还有几个要使用的GitHub问题中的提示 不能解决这个问题。有人知道怎么解决这个问题吗?
找不到javac编译器;通用域名格式。太阳工具。javac。Main不在类路径上。也许JAVA_HOME没有指向JDK。当前设置为“C:\Program Files\Java\jre7”。解决方案是什么?
我做了一个从Java到xls的导出,我使用POI库。 我的createCell方法: 我在一个For中调用这个方法,我有这样的消息错误: Echec de l'export:超出了单元格样式的最大数目。在.xls工作簿中最多可以定义4000个样式 如何重用我的单元格而不必重新创建每个迭代? THX