好吧,这取决于您要对文件输入做什么。如果您只想打印从文件中读取的字符,而不将其输出到另一个文件,那么您可以只打印输出:
fun outputFile infile = let
val ins = TextIO.openIn infile;
fun helper copt = (case copt of NONE => TextIO.closeIn ins
| SOME c => print (str c); helper (TextIO.input1 ins));
in
helper (TextIO.input1 ins)
end;
outputFile "outtest"; (*If the name of your file is "outtest" then call this way*)
然而,上面的例子很糟糕,因为它会给你无限循环,因为即使它命中 NONE,也不知道如何终止和关闭文件。因此,这个版本更干净,更易读,并且终止:
fun outputFile infile = let
val ins = TextIO.openIn infile;
fun helper NONE = TextIO.closeIn ins
| helper (SOME c) = (print (str c); helper (TextIO.input1 ins));
in
helper (TextIO.input1 ins)
end;
outputFile "outtest";
如果您只想将您的内容输出infile
到另一个文件,那就是另一回事了,在这种情况下您必须打开一个文件句柄进行输出。