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

时间:2013-02-28 15:38:54

标签: file file-io f#

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

  • readAllText
  • readAllLines
  • WriteAllLines等

2 个答案:

答案 0 :(得分:10)

正如杰克所说,如果您想使用逐行功能处理文件(或任何其他流),则需要使用StreamWriterStreamReader类型。只需使用这样的构造函数:

open System.IO

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

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

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

答案 1 :(得分:3)

System.IO.File类中的方法仅支持读/写整个文件。如果您想要更细化的方法(例如,逐行读/写),您需要使用StreamReaderStreamWriter之类的内容。