我没理解为什么它不起作用..
错误显示为newArraylist (line 13);
newSreamReader (line 14, 24)
不存在。
任何帮助将不胜感激。
using System;
using System.IO;
using System.Collections;
namespace InsertLineInTextFile
{
class Program
{
static void Main(string[] args)
{
string strTextFileName = "file.txt";
int iInsertAtLineNumber = 2;
string strTextToInsert = "Amudha";
ArrayList lines = new ArrayList();
StreamReader rdr = new StreamReader(strTextFileName);
string line;
while ((line = rdr.ReadLine()) != null) lines.Add(line);
rdr.Close();
if (lines.Count > iInsertAtLineNumber) lines.Insert(iInsertAtLineNumber, strTextToInsert);
else
lines.Add(strTextToInsert);
StreamWriter wrtr = new StreamWriter(strTextFileName);
foreach (string strNewLine in lines) wrtr.WriteLine(strNewLine);
wrtr.Close();
}
}
}
答案 0 :(得分:0)
首先,你必须考虑你将要实现的目标; 反对engeniering (唉!)说
在 fileName 文件的 iInsertAtLineNumber 行插入 strTextToInsert (如果文件太短,则添加文本)
然后实施:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
...
string fileName = "file.txt";
int iInsertAtLineNumber = 2;
string strTextToInsert = "Amudha";
List<String> lines = File
.ReadLines(fileName)
.ToList();
if (lines.Count > iInsertAtLineNumber)
lines.Insert(iInsertAtLineNumber, strTextToInsert);
else
lines.Add(strTextToInsert);
File.WriteAllLines(fileName, lines);
请不要在问题中使用过时的类ArrayList
,而应使用List<T>
(List<String>
)。与File.ReadLines
/ File.WriteAllLines
相比,StreamReader
和StreamWriter
通常可读且更易于维护。