【问题标题】:Empty line in .Net File.WriteAllLines, is a bug? [closed].Net File.WriteAllLines 中的空行是错误吗? [关闭]
【发布时间】:2012-01-17 10:52:08
【问题描述】:

全部

这个问题与System.IO.File中的两个方法有关:

File.WriteAllLines 和 File.ReadAllLines

当我使用

保存 List[string] ListA
File.WriteAllLines("filename",ListA.ToArray());

将有一个空行追加到输出文件。

所以每次我通过调用File.ReadAllLines 加载这个文件时,我总会得到一个空行。

这很烦人,因为我每次都必须手动“删除”它。

有人遇到同样的问题吗?又是如何处理的?

谢谢

【问题讨论】:

  • 您确定ListA 中的最后一项没有\n 字符吗?
  • 您确定 ListA 不包含空元素吗?
  • 尝试将 ListA.toArry 输出到控制台,看看是否有换行符。
  • toArray 好像是java,你在转换一些代码吗,好像你错过了什么,ListA 的内容是如何加载/填充的
  • 按照设计,最后一行也会附加一个 NewLine,因此它看起来在任何文本编辑器的底部都有一个空行。

标签: c# .net


【解决方案1】:

不,我无法重现:

using System;
using System.Collections.Generic;
using System.IO;

class Test
{
    static void Main()
    {
        string[] lines = { "first", "second", "third" };

        for (int i = 0; i < 10; i++)
        {
            File.WriteAllLines("test.txt", lines);

            lines = File.ReadAllLines("test.txt");
            Console.WriteLine("Number of lines read: {0}", lines.Length);
        }
    }
}

听起来这可能与您正在做的事情有关线条...您没有告诉我们。

【讨论】:

  • 我使用字符串列表并保存为 File.WriteAllLines("filename",ListA.toArry());
  • @DuSijun:嗯,没有像toArry 这样的方法,我怀疑这不是标准List&lt;T&gt;... 或者你给我们错误的代码。您需要提供更多上下文,但基本上我认为您不应该责怪File.WriteAllLinesFile.ReadAllLines
  • 对不起 ListA.ToArray();
  • @DuSijun:那么问题仍然出在其他地方 - 只是从数组创建一个列表,然后将列表转换回数组并不会添加条目。请尝试在一个简短但完整的程序中显示问题 - 就像我的一样,但显示错误。
猜你喜欢
  • 2012-07-26
  • 1970-01-01
  • 2015-03-04
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 2013-08-30
相关资源
最近更新 更多