0

我正在实现我自己的网络服务器。以下方法搜索服务器端包含并适当地构建 html 页面。

public String getSSI(String content) throws IOException {

    String beginString = "<!--#INCLUDE VIRTUAL=\"";
    String endString = "\"-->";

    int beginIndex = content.indexOf(beginString);
    while (beginIndex != -1) {
        int endIndex = content.indexOf(endString, beginIndex);
        String includePath = content.substring(beginIndex+beginString.length(), endIndex);

        File includeFile = new File(BASE_DIR+includePath);
        byte[] bytes = new byte[(int) includeFile.length()];
        FileInputStream in = new FileInputStream(includeFile);    
        in.read(bytes);
        in.close();

        String includeContent = new String(bytes);
        includeContent = getSSI(includeContent);

        content = content.replaceAll(beginString+includePath+endString, includeContent);

        beginIndex = content.indexOf(beginString);
    }

    return content;
}

我知道 StringBuilder 比 String 快,但是我能做的就是优化它吗?将原始数据读入字节数组并转换为String,此时将其传递给该方法,并将输出转换回字节数组并发送给客户端。

4

1 回答 1

1

我不知道这会产生多大的影响,但是您可以使用IOUtils toString(InputStream)方法直接读取字符串,而不是读取字节数组并转换为字符串。同样,您可以将 String 直接写入 OutputStream

于 2013-04-20T03:35:56.787 回答