我想逐行读取文件中的文本,并逐行-将其写入新文件。
我在nemerle使用以下代码:
module Program
{
Main() : void
{
mutable dirInfo= System.IO.DirectoryInfo(@"C:\Users\David Ben Michael\source\repos\nemerle\files");
def fileNames=dirInfo.GetFiles();
foreach ( fi in fileNames)
{
mutable fileExt;
fileExt= System.IO.Path.GetExtension(fi.FullName);
if (fileExt == ".vm" )
{
def sr = System.IO.StreamReader(fi.FullName);
// def sw =System.IO.StreamWriter(@"C:\Users\David Ben Michael\source\repos\nemerle\files\output.asm");
mutable line = sr.ReadLine ();
while (line != null) {
System.IO.File.AppendAllText(@"C:\Users\David Ben Michael\source\repos\nemerle\files\output.asm",line);
//sw.Writeline(line);
line = sr.ReadLine ();
}}
else{}
}
}
}
以这种方式:最终,我在“ .asm”文件中获取了“ .vm”文件内容的副本,两行之间没有间断。我想分开。因此,与其使用指令System.IO.File.AppendAllText(@"C:\Users\David Ben Michael\source\repos\nemerle\files\output.asm",line);
我使用了以下代码:
if (fileExt == ".vm" )
{
def sr = System.IO.StreamReader(fi.FullName);
def sw =System.IO.StreamWriter(@"C:\Users\David Ben Michael\source\repos\nemerle\files\output.asm");
mutable line = sr.ReadLine ();
while (line != null) {
//System.IO.File.AppendAllText(@"C:\Users\David Ben Michael\source\repos\nemerle\files\output.asm",line);
sw.WriteLine(line);
line = sr.ReadLine ();
在这种情况下,编译器将创建空文件(!)。 为什么文件为空?以及我如何解决这个问题?
谢谢