我通過循環讀取並使用Streamreader讀取行來解析平面文件。VB .Net Streamreader - 在文本文件中的換行符之前修剪空格
一切正常,但需求更改,每個記錄末尾的字段變爲可選。我們根據定義驗證每行的長度,以確定是否應將該文件暫掛爲格式不正確。
這導致發現Streamreader.ReadLine將修剪最後一個字符之後和換行符之前的任何尾隨空格。
考慮具有由空格置換的數字下面的例子:
鮑勃·瓊斯12345 \ n 鮑勃·瓊斯\ n
的StreamReader的將與兩者的ReadLine和ReadToEnd的商店忽略這些位。下面是結果存儲:
的Readline:
「鮑勃·瓊斯12345」 「鮑勃·瓊斯」
ReadToEnd的:
「鮑勃·瓊斯12345」 & vbrclf & 「鮑勃·瓊斯」
與Readblock相同,然後將緩衝區結果複製到一個字符串中。
我會採取不同的方法來驗證記錄的長度,因爲結束日期字段是可選的,但我的問題是爲什麼Streamreader會丟棄這些結束空格?如果我需要,我將如何閱讀他們?
我非常驚訝這種行爲,所以測試它。至少默認情況下,對於我來說,StreamReader.ReadLine不會這樣做。你確定代碼修剪中沒有其他東西嗎?你能夠重現小代碼示例中的行爲嗎?你能否確認你使用的.Net版本? – tolanj