我正在使用尖锐的发展。我正在使用C#制作Win App。我希望我的程序检查驱动器c中名为test的文本文件,找到包含“=”的行,然后将此行写入驱动器c:中其他新创建的文本文件。
答案 0 :(得分:2)
试试这个单行:
File.WriteAllLines(destinationFileName,
File.ReadAllLines(sourceFileName)
.Where(x => x.Contains("=")));
答案 1 :(得分:2)
这是使用File.ReadLines
,Linq的Where
和File.AppendAllLines
var path1 = @"C:\test.txt";
var path2 = @"C:\test_out.txt";
var equalLines = File.ReadLines(path1)
.Where(l => l.Contains("="));
File.AppendAllLines(path2, equalLines.Take(1));
答案 2 :(得分:1)
using(StreamWriter sw = new StreamWriter(@"C:\destinationFile.txt"))
{
StreamReader sr = new StreamReader(@"C:\sourceFile.txt");
string line = String.Empty;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("=")) { sw.WriteLine(line)); }
}
sr.Close();
}
答案 3 :(得分:0)
你有没试过?
以下是两种阅读文件的方法:
使用File类中提供的静态方法。 ReadAllLines具体。如果您处理小文件,这就足够了。接下来,一旦有了数组,只需使用LINQ或任何其他迭代方法找到带有“=”的项。获得该行后,再次使用File类创建文件并将数据写入该文件。
如果您要处理大文件,请使用Stream。休息时间基本保持不变。
答案 4 :(得分:0)
if (File.Exists(txtBaseAddress.Text))
{
StreamReader sr = new StreamReader(txtBaseAddress.Text);
string line;
string fileText = "";
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("="))
{
fileText += line;
}
}
sr.Close();
if (fileText != "")
{
try
{
StreamWriter sw = new StreamWriter(txtDestAddress.Text);
sw.Write(fileText);
sw.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
答案 5 :(得分:0)
有点编辑Furqan的答案
using (StreamReader sr = new StreamReader(@"C:\Users\Username\Documents\a.txt"))
using (StreamWriter sw = new StreamWriter(@"C:\Users\Username\Documents\b.txt"))
{
int counter = 0;
string line = String.Empty;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("="))
{
sw.WriteLine(line);
if (++counter == 4)
{
sw.WriteLine();
counter = 0;
}
}
}
}