读取文件时如何跳过文本的某些区域?

时间:2018-08-08 14:03:00

标签: java string stringbuilder string-parsing

当将结果放入.txt时,我正在阅读StringBuilder文件,并想跳过此文本中的代码清单。

文字示例:

  

以下Bicycle类是对a的可能实现   自行车:

     

/ *自行车课类“自行车{

”的示例      

int cadence = 0;

     

int速度= 0; } * /

这就是我要去的地方

public class Main {

public static BufferedReader in;
public static StringBuilder stringBuilder = new StringBuilder();

public static void main(String[] args) {

    String input = "input_text.txt";

    try {
        in = new BufferedReader(new FileReader(input));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    String inputText;

    try {
        while ((inputText = in.readLine()) != null) {
            if (inputText.startsWith("/*")) {

// The problem is there:

                while (!inputText.endsWith("*/")) {
                    int lengthLine = inputText.length();
                    in.skip((long)lengthLine);
                }
            }
                stringBuilder.append(inputText);

        }
    } catch (IOException e) {
        e.printStackTrace();
    }

我遇到了无限while循环,无法跳转到下一行。

1 个答案:

答案 0 :(得分:3)

您永远不会在inputText循环中重置while的值,因此它永远不会以*/结尾,从而导致无限循环。另外,您不需要使用skip()方法,因为只要遇到*/就可以读取行。尝试将循环更改为:

 while (!inputText.endsWith("*/")) {       
        String temp = in.readLine();
        if(temp == null) {break;}
        inputText = temp;                                                           
 }

输出:(带有打印StringBuilder

The following Bicycle class is one possible implementation of a bicycle: