c# - 如何读取流的所有字节但最后 8 个字节

标签 c# .net io stream bytestream

我有以下代码:

using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
    income.CopyTo(fs);
}

income 是我需要保存到磁盘的流,问题是我想忽略最后 8 个字节并保存之前的所有内容。收入流是只读的,只能向前,所以我无法预测它的大小,而且由于发送的文件很大,我不想将所有流加载到内存中。

我们将不胜感激。

最佳答案

也许 (或者更确切地说可能) 有一种更简洁的方式来做这件事,但现在我想到的第一个想法是务实的:

using (var fs = new FileStream(@"C:\dump.bin", FileMode.Create))
{
    income.CopyTo(fs);
    fs.SetLength(Math.Max(income.Length - 8, 0));
}

写入后的文件长度设置为多少。

关于c# - 如何读取流的所有字节但最后 8 个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690969/

相关文章:

python - 在python中读取文件

python - 使用 urllib 和 pil 调整 url 图像大小

c# - 从数据表查询时在 Lambda 表达式中使用 Let

c# - 当固定到任务栏时,什么决定了应用程序名称?

C# |从带有值的静态类字段创建一个 json 字符串

c# - 从字符串中删除隐藏字符

ruby - celluloid-io 或带有蚊子循环的 eventmachine

c# - 如何在两个页面之间切换而不丢失数据: WPF, C#

c# - 显示来自动态加载的 DLL 的表单

c# - 你如何设置 ApiController.User