写入文本文件并从特定位置开始
Write to text file and start at specific position
我正在编写一个程序来创建一种文件。规范表明我必须有某些定界因素,因为同一行上的字符串对它们的长度和它们在该行的起始位置有限制。
例如
我正在尝试编写一个文本文件。
第一行应显示 "TEST1" 的字符串,该字符串将从第一行的 0 位置开始并为总数 10 创建空格。因此字符串后将有 5 个空格。
在同一行的第 11 个位置上,它会写 "TEST2",这同样会有总数 10,因此在字符串之后会有 5 个空格。
"TEST1"和"TEST2"的字符串可以在1-10个字符之间随时更改。
我试过 String.format("{0,10}" 似乎它允许在第 10 个位置结束,但不是我要找的。
这是一个 FNMA 文件。
您可以使用阿雷迪建议的方法,但您必须知道,如果文件是 UTF-8
格式,您需要跳过 UTF-8 BOM (header) that you can get with the UTF8Encoding.GetPreamble Method 并传递编码构造函数 true
因为默认你不会得到它。对于 ASCII 文件,偏移量将为 0。
var value = string.Format("{0,-10}", "TEST33");
FileStream fs = File.OpenWrite("test.txt");
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(true);
int preamble = enc.GetPreamble().Length;
var bytes = enc.GetBytes(value);
fs.Seek(preamble, SeekOrigin.Begin);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
我正在编写一个程序来创建一种文件。规范表明我必须有某些定界因素,因为同一行上的字符串对它们的长度和它们在该行的起始位置有限制。
例如
我正在尝试编写一个文本文件。
第一行应显示 "TEST1" 的字符串,该字符串将从第一行的 0 位置开始并为总数 10 创建空格。因此字符串后将有 5 个空格。
在同一行的第 11 个位置上,它会写 "TEST2",这同样会有总数 10,因此在字符串之后会有 5 个空格。
"TEST1"和"TEST2"的字符串可以在1-10个字符之间随时更改。
我试过 String.format("{0,10}" 似乎它允许在第 10 个位置结束,但不是我要找的。
这是一个 FNMA 文件。
您可以使用阿雷迪建议的方法,但您必须知道,如果文件是 UTF-8
格式,您需要跳过 UTF-8 BOM (header) that you can get with the UTF8Encoding.GetPreamble Method 并传递编码构造函数 true
因为默认你不会得到它。对于 ASCII 文件,偏移量将为 0。
var value = string.Format("{0,-10}", "TEST33");
FileStream fs = File.OpenWrite("test.txt");
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(true);
int preamble = enc.GetPreamble().Length;
var bytes = enc.GetBytes(value);
fs.Seek(preamble, SeekOrigin.Begin);
fs.Write(bytes, 0, bytes.Length);
fs.Close();