java memorystream 包_C#到Java:Base64String,MemoryStream,GZipStream
我有一个在.NET中被gzip压缩的Base64字符串,我想将它转换回Java中的字符串.我正在寻找C#语法的一些Java等价物,特别是:
> Convert.FromBase64String
> MemoryStream
> GZipStream
这是我要转换的方法:
public static string Decompress(string zipText) {
byte[] gzipBuff = Convert.FromBase64String(zipText);
using (MemoryStream memstream = new MemoryStream())
{
int msgLength = BitConverter.ToInt32(gzipBuff, 0);
memstream.Write(gzipBuff, 4, gzipBuff.Length - 4);
byte[] buffer = new byte[msgLength];
memstream.Position = 0;
using (GZipStream gzip = new GZipStream(memstream, CompressionMode.Decompress))
{
gzip.Read(buffer, 0, buffer.Length);
}
return Encoding.UTF8.GetString(buffer);
}
}
任何指针都表示赞赏.
解决方法:
对于Base64,您拥有Apache Commons的Base64 class和带有String并返回byte []的decodeBase64方法.
然后,您可以将生成的byte []读入ByteArrayInputStream.最后,将ByteArrayInputStream传递给GZipInputStream并读取未压缩的字节.
代码看起来像这样的东西:
public static String Decompress(String zipText) throws IOException {
byte[] gzipBuff = Base64.decodeBase64(zipText);
ByteArrayInputStream memstream = new ByteArrayInputStream(gzipBuff);
GZIPInputStream gzin = new GZIPInputStream(memstream);
final int buffSize = 8192;
byte[] tempBuffer = new byte[buffSize ];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((size = gzin.read(tempBuffer, 0, buffSize)) != -1) {
baos.write(tempBuffer, 0, size);
}
byte[] buffer = baos.toByteArray();
baos.close();
return new String(buffer, "UTF-8");
}
我没有测试代码,但我认为它应该可以工作,也许只需要一些修改.
标签:c,java,memorystream,gzipstream,gzipinputstream
来源: https://codeday.me/bug/20190622/1259920.html
java memorystream 包_C#到Java:Base64String,MemoryStream,GZipStream相关推荐
- c 调用java post方法_C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- mongodb的java驱动包_mongodb的java驱动包
java 中的 JDBC 纯驱动方式连接 Oracle 数据库一.下载数据库厂商提供的驱动程序包 二.将驱动程序包引入工程中,步骤如下 1.选中项目--单击右键--Build ...... 4种类型的 ...
- java高频面试_C ++或Java,高频交易哪个更快?
java高频面试 总览 关于什么是高频交易的最佳解决方案,存在不同意见. 问题的一部分是高频交易的变化超出您的预期,另一部分是更快的含义. 我的看法 如果您有一个典型的Java程序员和一个典型的C + ...
- java memorystream 包_C#字符串string 、byte[]、MemoryStream、Base64String的相互转换
1.字符串转比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert ...
- java memorystream 包_C#使用MemoryStream类读写内存
和FileStream一样,MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法.这两个类都是实现对内存进行数 ...
- c 调用java包_C#调用java代码(IKVMC)
参考资料:https://blog.csdn.net/threadroc/article/details/51406587 参考1:http://www.cnblogs.com/Jack-Blog/p ...
- java protobuffer 网络_C#与Java通过protobuf进行网络通信过程中遇到的问题
上周体验了一把protobuf,google大佬搞的东西据说很多人用,优点自然不用多说,随便搜搜结果一大堆.为了测试这个玩意,随便弄了一个客户端,拿C#写了一个简单的控制台程序请求服务端,服务端拿ja ...
- java 程序包jar_把Java程序打包成jar文件包并执行
把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...
- csharp与java的区别_C#与JAVA之比较(1)
C#.Java之比较 很多人说C#是微软用来和Java抗衡的武器,因为二者在很大程度上有着惊人的相似 ,尽管如此,两者不同的地方也很多,所谓"于细微处见差异".那么两者的相似和区 ...
最新文章
- [导入]C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式.zip(8.75 MB)...
- 客户端与服务端的TCP通信实现(Qt)
- HDU2546_用01背包做
- jdbc获取结果行数_java – 如何判断从JDBC执行更改的行数
- 使用Office 365 试用账户 体验Office 365功能
- Layui--颜色选择器layui.colorpicker
- 如何站在双11的肩膀上 详解阿里云企业级互联网架构
- win7误删计算机,Win7系统下文件数据被误删了怎么办
- 软件工程第0次作业 | 热身
- 并行开发 5.同步机制(下)
- 感知机(Perceptron)为什么不能表示异或(XOR)
- Redis 锁的实现方案
- 数据科学 IPython 笔记本 8.16 地理数据和 Basemap
- JVM学习--垃圾回收机制
- AID Learning设置aidcode的启动页面
- Apple Silicon M1 MacBook Air上手详细评测M1的强大!
- Phab2 Pro体验 Tango技术简介
- dede后台-系统基本参数无法保存中文/显示空白
- python 计算器 loop_python计算器实现 Yeah
- 面积与弦长_Simplelife_新浪博客