- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是编码新手。我试图一次从文件中读取几个字符,我的代码如下所示。但是,当文件少于请求的字符时,它会将\0 返回到数组中,\0 是什么意思。请帮我理解。
using (StreamReader sr = new StreamReader(m_segmentFile.TempFileName))
using (StreamWriter sw = new StreamWriter(m_segmentFile.DisplayFile))
{
while ( sr.Peek() >= 0 || m_segmentFile.ParserStatus == ParserStatus.Stopped)
{
buffer = new char[m_segmentFile.FieldWidth];
sr.Read(buffer, 0, buffer.Length);
block = new string(buffer);
if (block[0] != '%')
{
noerrors = m_segmentFile.CheckBlockValidity(block) && noerrors;
int percentComplete = (int)Math.Round((double)(offset * 100) / sr.BaseStream.Length);
if (percentComplete > m_percentParsed && percentComplete <= 100)
{
m_percentParsed = (int)percentComplete;
m_segmentFile.PercentParsed = m_percentParsed;
}
block = (m_segmentFile.FieldWidth * index).ToString() + ":" +block;
sw.WriteLine(block);
index++;
m_parserStatus = ParserStatus.Parsing;
}
else
{
sw.WriteLine(block);
//sr.BaseStream.Seek();
}
}
最佳答案
值 0
表示文件结束。
来自StreamReader.Read Method (Char[], Int32, Int32)
文档:
Return Value
Type: System.Int32
The number of characters that have been read, or 0 if at the end of the stream and no data was read. The number will be less than or equal to the count parameter, depending on whether the data is available within the stream.
从文件中读取字符的更正确方法是仅使用刚刚使用 String Constructor (Char[], Int32, Int32)
从文件中读取的字符。 。这应该会从字符串中删除多余的 0
字符,并防止您从之前读取的 buffer
中重新读取字符。
int readLength = sr.Read(buffer, 0, buffer.Length);
block = new string(buffer, 0, readLength);
更好的选择可能是使用 StringReader
包装您的 StreamReader
。
关于c# - StreamReader.Read 返回\0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24152912/
文档只是说 ReadBlock 是 “Read 的阻塞版本” 但这意味着什么? 之前有人问过这个问题,嗯? http://www.pcreview.co.uk/forums/thread-138578
我对 StreamReader 类的两个不同构造函数有点困惑,即 1.StreamReader(流) 我知道它需要流字节作为输入,但相应的输出是相同的。 这是我使用 StreamReader(Stre
我试图从一个文本文件中读取,该文本文件在写入时有多个输出,但是当我想从我已经输出内容的文本文件中读取时,我想选择最后一个条目(记住每个条目当写作有 5 行时,我只想要包含“密文:”)的行 但是它正在读
我正在开发一个接受TCP连接并读取数据的应用程序,直到读取标记,然后将该数据写入文件系统。我不想断开连接,我想让客户端发送数据来做到这一点,以便他们可以在一个连接中发送多个文件。 我在外部循环中使用了
我尝试制作一个脚本,该脚本可以逐行读取 TXT 文件,并根据里面的内容更改标签。有没有办法检查正在读取哪一行? 最佳答案 此示例使用 StreamReader 类的 ReadLine 方法将文本文件的
我正在尝试处理文本文件的一部分,并使用 UploadFromStream 将文本文件的其余部分写入云 blob。问题在于 StreamReader 似乎从底层流中获取了太多内容,因此后续写入不会执行任
某处是否有非缓冲流读取器实现? 我通过以下方式创建了我的流 FileInputStream inputStream = new FileInputStream(inputFilename); Coun
我想要一个 string[]分配了一个 StreamReader .喜欢: try{ StreamReader sr = new StreamReader("a.txt"); do{
我想弄清楚如何标记文本文件的 StreamReader。我已经能够将这些行分开,但现在我正试图弄清楚如何通过制表符分隔符来分解这些行。这是我目前所拥有的。 string readContents; u
我正在使用我编写的一些不是最佳的代码...:-| 我有以下代码: string fmtLine = ""; string[] splitedFmtLine;
我正在尝试从我的 Web 应用程序的 App_Data 文件夹加载文件: KezMenu kmenu = new KezMenu("~/App_Data/Menu.xml"); 但出于某种原因,这
我正在尝试使用接收 FileStream 的 StreamReader 读取文件的内容。该文件内部有一些空格(字符 32),StreamReader 将它们读取为 0(字符 48)。屏幕截图显示了 F
我有一些奇怪的问题(对我来说)。 有一个应用程序是 Windows 窗体应用程序“firstapp.exe”。还有另一个应用程序也是 Windows 窗体应用程序“launcher.exe”。并且有一
我需要在 C# 应用程序上同时逐行读取四个非常大 (>2 Gb) 的文件。我使用了四种不同的 StreamReader 对象及其 ReadLine() 方法。 同时从四个文件中读取行时,性能会受到严重
我有一个包装在 System.IO.StreamReader 中的输入流...我希望将流的内容写入文件(即 StreamWriter)。 输入流的长度未知。长度可以是几个字节,也可以是千兆字节。 怎么
我对这篇文章有类似的要求... Populate Gridview at runtime using textfile 我想用 StreamReader 读取文本文件并用文件中的数据填充 DataTa
我应该使用哪种编码来读取 æ、Ø、å、ä、ö、ü 等? 最佳答案 您应该使用原始数据的任何编码。你从哪里获取数据,你有关于它的编码的信息吗?如果您尝试使用错误的编码来读取它,您将得到错误的答案:即使您
你好,我在为 Unity3D 编写编辑器时遇到了问题,我遇到了一个问题,我正在从具有常规字符串的 .txt 文件中读取行,然后在每个常规字符串下方读取文件扩展名(代表扩展名的类别) ).当我尝试在分配
这是我的代码: StreamReader reader = new StreamReader("war.txt"); string input = null; while ((input = read
我正在制作一个函数,它将从 StreamReader 中获取行数,不包括注释(以“//”开头的行)和新行。 这是我的代码: private int GetPatchCount(StreamReader
我是一名优秀的程序员,十分优秀!