如何解决C#使用SharpZipLib将存档中的文本文件.GetInputStream解压缩为字符串
如何将文本文件从zip存档解压缩为字符串?
文本文件是否还需要MemoryStream
或StreamReader
像图像二进制文件一样?
特别是:
foreach (ZipEntry e in zipFile)
{
if (e.IsFile)
{
string ext = Path.GetExtension(e.Name).ToLower();
print(ext + " " + e.Name);
if (ext == ".jpg" || ext == ".png" || ext == ".tga")
{
Texture2D tex = new Texture2D(1,1);
Stream zipStream = zipFile.GetInputStream(e);
tex.LoadImage(ReadFully(zipStream));
dicTexture.Add(e.Name,tex );
} else if (ext == ".txt")
{
Stream zipStream = zipFile.GetInputStream(e);
dicTxt.Add(e.Name,Encoding.Default.GetString(zipStream.)); // how do you populate this string here?
}
}
}
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer,buffer.Length)) > 0)
{
ms.Write(buffer,read);
}
return ms.ToArray();
}
}
解决方法
与任何流一样,您可以使用环绕流的StreamReader并调用ReadToEnd
using(var x = new StreamReader(stream)){
var theString = x.ReadToEnd();
//use theString
}
如果要指定编码,请为此constructor can take a second parameter
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。