【发布时间】:2023-03-10 00:26:01
【问题描述】:
我在编写制表符分隔的文件时遇到问题,我已经检查了这里,但还没有得到答案。
所以我有一个函数可以返回带有以下重要部分的字符串(使用的分隔符以及我如何构建每一行):
var delimiter = @"\t";
sb.Append(string.Join(delimiter, itemContent));
sb.Append(Environment.NewLine);
返回的字符串是这样的:
H\t13\t170000000000001\t20150630
D\t1050\t10.0000\tY
D\t1050\t5.0000\tN
然后我把它写到一个文件中(下面的内容是上面的字符串):
var content = BuildFile(item);
var filePath = tempDirectory + fileName;
// Create the File
using (FileStream fs = File.Create(filePath))
{
Byte[] info = new UTF8Encoding(true).GetBytes(content);
fs.Write(info, 0, info.Length);
}
但是,文件输出是没有标签的(在记事本++中打开):
H\t13\t170000000000005\t20150630
D\t1050\t20.0000\tN
D\t1050\t2.5000\tY
什么时候应该更像这样(提供示例文件):
H 100115980 300010000000003 20150625
D 430181 1 N
D 342130 2 N
D 459961 1 N
这可能是我使用的编码造成的吗?感谢您的任何意见,谢谢!
【问题讨论】:
-
@OgnyanDimitrov 不是真的,这本质上是关于字符串和 C# 语法的问题
-
如果您接受添加对
Microsoft.VisualBasic的引用,您也可以使用ControlChars.Tab (sb.Append(string.Join(ControlChars.Tab, itemContent));) -
使用
Path.Combine(tempDirectory, fileName);