1

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

  • 读取所有文本
  • 读取所有行
  • WriteAllLines 等
4

2 回答 2

10

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

open System.IO

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

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

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

于 2013-02-28T18:58:08.533 回答
3

类中的方法System.IO.File只支持读/写整个文件。如果您想要更精细的方法(例如,逐行读取/写入),您需要使用类似StreamReaderand的东西StreamWriter

于 2013-02-28T15:54:22.453 回答