首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StreamReader ReadLine函数

StreamReader ReadLine函数
EN

Stack Overflow用户
提问于 2011-05-07 00:46:08
回答 1查看 1.1K关注 0票数 1

我使用StreamReader对象的ReadLine函数从文本文件中读取十进制值。我发现奇怪的是一些值有三个小数位都是零,即"-93.000",但当我调试时,我注意到流读取器只会读取前一个值为"-93.00“。我不确定为什么会发生这种情况,它将读取带有两个小数位全零的值,即"-85.00",就可以了。为了验证目的,我需要能够读取整个值,否则我的程序中会报告不准确的结果。

你知道为什么会发生这种行为吗?有没有其他方法可以解析文本文件来保留原始字符串??谢谢。

更新:

读取文本文件的代码

代码语言:javascript
复制
string Line = sr.ReadLine();

文本文件中的示例值:

代码语言:javascript
复制
-93.000 {\Tab}
-99.99 {\Tab}
-85.00

读取第一行后的行变量:

代码语言:javascript
复制
Line = "-93.00\t
-99.99\t
-85.00"

更新2:

在过去的一个小时里,我已经经历过几次了。我试着观察这条线是在哪里设置的,这就是我缩小到的范围。为了确保这一点,我将再次梳理代码。我还将查看文本文件的格式,因为它是由外部源提供给我的。

更新3:

根据John Saunders的建议,我尝试了一下,结果发现它提供了最初提供的值。我猜这可能与原始文本文件的格式化方式有关,可能是一些隐藏字符以某种方式影响了值的读取方式。我知道这是一个不寻常的案例。

更新4:

已尝试在Notepad++中修改文本文件,删除了一些空格并重新保存。流阅读器现在可以很好地读取它。这是一个非常奇怪的问题,我同意其他人的观点,即ReadLine()不应该这样做。也许这也只是我的设置或文本文件编码的一个偶然事件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-07 01:21:28

为什么不尝试通过FileStream读取字节数组形式的文件呢?

代码语言:javascript
复制
byte[] fileContents = File.ReadAllBytes( @"c:\foo\bar\bazbat.txt" ) ;

这肯定是某种编码问题(例如,您试图将其读取为UTF-8编码的文本,而该文件实际上是使用某种其他编码进行编码的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5914495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档