C# 行末尾的空白

C# 行末尾的空白,c#,asp.net,linux,C#,Asp.net,Linux,我有一个特别的问题,file.WriteAllText在文件末尾添加了一个额外的空白 我使用的是一个Ubuntu操作系统,并且为我的C#编码安装了monodevelop。我试图将两个文件连接在一起,即file1.txt和file2.txt。但当我这样做时,我会在文件的末尾看到一个空白。 我的代码如下 using System.IO; namespace WebApplication1 { public partial class _Default : System.Web.UI.Pag

我有一个特别的问题,
file.WriteAllText
在文件末尾添加了一个额外的空白

我使用的是一个Ubuntu操作系统,并且为我的C#编码安装了monodevelop。我试图将两个文件连接在一起,即file1.txtfile2.txt。但当我这样做时,我会在文件的末尾看到一个空白。 我的代码如下

using System.IO;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string file1 = File.ReadAllText(@"/home/usr/test/file1.txt");
            string file2 = File.ReadAllText(@"/home/usr/test/file2.txt");

            File.WriteAllText(@"/home/usr/test/result.txt", file1.Trim()+file2.Trim());
        }
    }
}

理想情况下,使用
Trim()
函数应该删除字符串开头/结尾的额外空格。但是,当我在编辑模式下打开文件时,我会在文件result.txt的末尾看到一个额外的空间。我如何摆脱它,或者为什么它会以这种方式运行?

使用visual studio,我也遇到了同样的问题。 问题不在修剪上。。问题在于“WriteAllText”总是在文件末尾添加一个空格

这似乎是.net framework中的一种缺陷,使用这种方法无法解决它。 与其使用WriteAllText,不如尝试使用他的siblin方法以二进制方式编写,您只需要从字符串中获取二进制文件,然后保存它


希望有帮助。

修剪可以消除字符串前端/末端的空白。txt文件可能不是以空格结尾,而是在结尾有一些输入。请检查您是否遇到行结尾问题,即LF与CRLF。Windows使用了额外的CR字符,但我在字符串中获取file1.txt和file2.txt的条目,并对字符串使用Trim()函数。另外,为了交叉验证,我通过gedit打开了file1.txt和file2.txt,但我从未在其中找到任何空白。因此,我们可以确保在连接和存储回结果之间会出现问题。TXT如何检查并清除LF和CRLF(在我的情况下),如果它存在存储
file1.Trim()+“xxxxxxxx”+file2.Trim()
,以验证空白的确切位置。