如何在 xpages 中读取 Java 中的 css 文件

How to read css file in Java in xpages

我想读取存储在我的 NSF 中的 css 文件的内容,以将其包含在我创建的 (HTML) 文件的样式元素中。

FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream

好像不是这个样子

有什么建议吗?

我试过了

InputStream input = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("file.css");

然后

StringBuilder sb = new StringBuilder();
sb.append("<style>").append("\n");
sb.append(convertStreamToString(input)).append("\n");
sb.append("</style>").append("\n");

static String convertStreamToString(java.io.InputStream is) {
        java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\A");
        return s.hasNext() ? s.next() : "";
    }

效果很好

您可以使用 Apache Commons IOUtils 从 InputStream 复制到 StringWriter,然后在 StringWriter 上使用 toString()。这是一个简单的方法:

private static String getResourceFile(final String filename) {
    final InputStream input = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(filename);

    final StringWriter writer = new StringWriter();
    try {
        IOUtils.copy(input, writer, "utf-8");
    } catch (final IOException e) {
        System.out.println("Error reading: " + filename);
    }
    return writer.toString();
}