我从Saxonica 网站下载了 Saxon 10 样本,以获取有关如何使用s9api的一些示例。
我发现所有示例都使用经典java.io.*
类来读取和写入 XSL 转换的文件。然后,我尝试使用更新的 Java NIO 和 NIO.2 包来查找任何 Saxon 示例用于 I/O**。
但令人惊讶的是,我一点运气都没有。我想知道为什么。
更具体地说,让我们关注两个例子:
java.nio.file.Files
如果我使用类而不是经典java.io.File
来告诉序列化程序在哪个文件中保存转换结果,它会产生真正的区别吗?
Path targetFile ...
transformer.newSerializer(Files.newOutputStream(targetFile));
transformer.newSerializer(Files.newBufferedWriter(targetFile));
transformer.newSerializer(targetFile.toFile()); // java.io.File
或者,在输入端,以下之一是否比其他更好?
Path targetFile ...
transformer.transform(new StreamSource(Files.newInputStream(xml)), out);
transformer.transform(new StreamSource(Files.newBufferedReader(xml)), out);
transformer.transform(new StreamSource(xml.toFile()), out); // java.io.File
或者参数类型只是一个“文件引用”,Serializer
并且StreamSource
无论我如何告诉他们要使用什么文件,都会尽力而为。