4

我正在尝试从 SML 文件中读取文本,但无法正常工作。这就是我正在尝试的

fun read file =
let val inStream = TextIO.openIn file

in
        TextIO.StreamIO.input1 inStream
end

实际的函数调用input1并不重要,我想要的只是能够从文件中读取。

4

1 回答 1

6

你的错误在于TextIO.StreamIO.input1,你的意思很可能是TextIO.input1

如果您确实需要/不想使用 StreamIO 处理文件,则必须将 ,instream返回的类型转换openINStreamIO.instream带有TextIO.getInstream函数的类型。

您可以在 SML 基础库TEXT_IO 签名中阅读有关这一切的更多信息。

请记住,在完成读取文件后关闭文件是一种很好的做法。

更新

正如评论中所建议的,您可以阅读整个文件(如果您知道它很小),也可以逐行阅读。
如果您不想逐字获取内容,最简单的方法是按空格分割内容。这样,您最终将得到一个字符串列表,这些字符串代表文件中的每个单独的“单词”。

于 2013-01-25T02:00:21.967 回答