c# - 如何从 StreamReader 读取长度为 n 的字符串?
问题描述
我有一个StreamReader
并且我想读取下一个n
字节并将它们作为字符串返回。
只有一个ReadLine()
方法返回一个字符串,但我的文件没有换行符(CR/LF)。而是Read()
返回并填充一个.int
ReadBlock()
char[]
有没有简单的方法来做到这一点?我要使用Encoding.GetString()
吗?然后我需要读入一个byte[]
.
我看到编码和字符超过 1 个字节的问题,所以确切地说,我想读取n
字节并且必须考虑编码。
解决方案
这应该有帮助:
private byte[] ReadPartial(Stream source, byte[] buffer, int start, int length)
{
//the second parameter on the streamreader
//says that it should detect the encoding
using(var reader = new StreamReader(source, true))
{
reader.BaseStream.Read(buffer, start, length);
}
return buffer;
}
推荐阅读
- python - 这个 lambda 函数是否有理由保留“self”的“旧实例”?
- r - 如何在有条件地定义向量的情况下提高循环的速度?
- python - 模型必须导入两次
- r - 是否有一个 R 函数允许我根据相同的字符将列表分组在一起,但如果有子目录,它将把它们分开
- amazon-s3 - 将文件复制并合并到另一个 S3 存储桶
- python - 为什么 commands.getstatusoutput 不起作用?
- javascript - Spread Operator ... 与 Material UI 中 Tab 的 props 中的函数调用一起使用
- android - Android模拟器运行时出错
- python - 如何设置相对于开始索引的numpy数组的结束索引
- flutter - 如何使用仅在应用程序在屏幕上运行的计时器?扑