在文本文件中预置信息
本文关键字:信息 文本 文件 | 更新日期: 2023-09-27 18:36:12
>我正在尝试使用StreamWriter访问一个简单的文本文件。我需要它来检查文本文件中的每一行,并在行首加上零,直到该行的长度等于 31。我的代码编译正确,但在执行后,它对有问题的实际文件没有任何作用。我做错了什么?
StreamReader Editor = new StreamReader(@"C:''Users''User''Desktop''New folder''DHStest.txt", true);
string reader = Editor.ReadToEnd();
using (StreamWriter Writer = new StreamWriter("DHStest.txt"))
{
string output = reader.PadLeft(31, '0');
Writer.Write(output);
Writer.Close();
}
你的第一个问题是你正在写入的文件与你正在读取的文件不同。
您的第二个问题是您没有像您想要的那样逐行读取文件。
你想要:
var path = @"C:'Users'User'Desktop'New folder'DHStest.txt";
var lines = File.ReadAllLines(path);
File.WriteAllLines(path, lines.Select(x => x.PadLeft(31, '0')));
阅读所有行,然后用填充将它们写回去。
不确定,但为什么不:
File.WriteAllLines("myFile.txt",
File.ReadLines("myFile.txt").Select(s => s.PadLeft(31, '0')).ToArray());
只是一个想法。
如果你想一次做一行,你需要阅读各个行。
var lines = File.ReadAllLines(fileName);
using (var writer = new StreamWriter(fileName))
{
foreach (var line in lines)
{
writer.WriteLine(line.PadLeft(31, '0'));
}
}
您没有看到修改后的文件的原因是您没有使用完整路径打开它。也就是说,您有:
using (StreamWriter Writer = new StreamWriter("DHStest.txt"))
这将在当前工作目录中打开文件 - 可能是包含可执行文件的目录。