0

我在 StringBuffer 中有一个文件的内容。该文件的内容包括多行(而不是单行)。我想编辑从索引 4(仅作为示例)到该行末尾的行的内容。我replace()用来编辑 StringBuffer 的内容。

重点是replace方法有起始索引和结束索引等参数。但我不知道结束索引是什么,因为每行都有不同数量的字符

我想用str.indexOf("\n")查找行的结束索引,但是文件有很多行,所以它会返回不正确的结果。

这是readFile()如果你需要阅读代码

谢谢

public StringBuffer readFile(){ //read file line by line
    File f = getFilePath(fileName);
    StringBuffer sb = new StringBuffer();
    String textinLine;

    try {
        FileInputStream fs = new FileInputStream(f);
        InputStreamReader in = new InputStreamReader(fs);
        BufferedReader br = new BufferedReader(in);

     while (true){
            textinLine = br.readLine();
            if (textinLine == null) break;
            sb.append(textinLine+ "\n");
        }
        fs.close();
        in.close();
        br.close();
    } ... // just some catch statements heres
}
4

2 回答 2

0

按照您的指示使用String.indexOf(),但在起始位置传递,例如indexOf('\n', 4);

于 2012-11-15T20:50:06.583 回答
0

我同意 Jim 的想法,为什么不在将字符串附加到 StringBuffer 之前对其进行处理。

顺便说一句,我认为你可以使用indexOf(String str, int fromIndex)函数来解析StringBuffer,每次获取时'\n',你可以设置一个偏移值,然后下次获取时\n,你可以让索引值加上偏移量。

于 2012-11-15T21:03:38.290 回答