如何从C#中的文本文件一次读/写一行

nat*_*ati 1 file-io f# file

我想每次在线读取文件"hello.txt",然后将此行写入"bye.text"并进入屏幕.我怎样才能做到这一点?我在"文件"中看到的唯一功能是:

  • readAllText
  • readAllLines
  • WriteAllLines等

Tom*_*cek 10

正如Jack所说,如果你想使用逐行函数处理文件(或任何其他流),你需要使用StreamWriterStreamReader类型.只需使用这样的构造函数:

open System.IO

let addLine (line:string) =     
  use wr = StreamWriter("D:\\temp\\test.txt", true)
  wr.WriteLine(line)
Run Code Online (Sandbox Code Playgroud)

在这里,我们使用StreamWriter构造函数的重载,该构造函数接受路径(作为字符串)和布尔值,指定我们要追加到现有文件.另请注意,我正在使用use关键字来确保文件在addLine完成时关闭.

要将内容作为一系列行读取,您可以StreamReader类似地使用- 使用构造函数创建该类型的实例,然后使用ReadLine方法直到获得null结果.

  • 不应该是`使用wr = _new_ StreamWriter(...)`在范围结束时调用`Dispose`?为什么/为什么不呢? (2认同)