Java 如何优化此字符串搜索/替换方法?

Java 如何优化此字符串搜索/替换方法?,java,string,search,optimization,replace,Java,String,Search,Optimization,Replace,我正在实现自己的web服务器。以下方法搜索服务器端包含并适当构建html页面 公共字符串getSSI(字符串内容)引发IOException{ String beginString = "<!--#INCLUDE VIRTUAL=\""; String endString = "\"-->"; int beginIndex = content.indexOf(beginString); while (beginIndex != -1) {

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

公共字符串getSSI(字符串内容)引发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;
}
String beginString=“”;
int beginIndex=content.indexOf(beginString);
而(beginIndex!=-1){
int endIndex=content.indexOf(endString,beginIndex);
字符串includePath=content.substring(beginIndex+beginString.length(),endIndex);
文件includeFile=新文件(基本目录+includePath);
字节[]字节=新字节[(int)includeFile.length()];
FileInputStream in=新的FileInputStream(includeFile);
in.read(字节);
in.close();
字符串includeContent=新字符串(字节);
includeContent=getSSI(includeContent);
content=content.replaceAll(beginString+includePath+endString,includeContent);
beginIndex=content.indexOf(beginString);
}
返回内容;
}


我知道StringBuilder比String快,但我能做的就是优化它吗?原始数据被读入字节数组并转换成字符串,在这一点上它被传递到这个方法中,输出被转换回字节数组并发送到客户端。

我不知道这会有多大的影响,但不是读入字节数组并转换成字符串,您可以使用该方法直接读取字符串。同样,您也可以。

与磁盘IO相比,您所做的任何优化都可能微不足道。您是否分析了您的代码并发现此方法是一个实际的瓶颈?@Supericy否,但我想养成良好的代码编写习惯。编写优化代码=/=良好的代码编写习惯。编写可读、可维护的文档更为重要。一旦一段代码成为一个问题(通过分析应用程序确定),那么现在正是返回并修改问题区域的好时机(如果优化使代码变得非常模糊,请确保对其进行大量注释!)。@Supericy您的建议很受欢迎。我可能应该学习如何使用分析器。:)我会考虑这个问题。非常感谢。