Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在阅读文件时,如何跳过某些文本区域?_Java_String_Stringbuilder_String Parsing - Fatal编程技术网

Java 在阅读文件时,如何跳过某些文本区域?

Java 在阅读文件时,如何跳过某些文本区域?,java,string,stringbuilder,string-parsing,Java,String,Stringbuilder,String Parsing,我正在读一个.txt文件,想在将结果放入StringBuilder时跳过本文中的代码列表 文本示例: 下面的Bicycle类是 自行车: /*自行车类自行车实例{ int-cadence=0 int速度=0;}*/ 这就是我能想到的: public class Main { public static BufferedReader in; public static StringBuilder stringBuilder = new StringBuilder(); public stati

我正在读一个
.txt
文件,想在将结果放入
StringBuilder
时跳过本文中的代码列表

文本示例:

下面的Bicycle类是 自行车:

/*自行车类自行车实例{

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
循环中从未重置
inputText
的值,因此它永远不会以
*/
结束,从而导致无限循环。此外,您不需要使用
skip()
方法,因为在遇到
*/
之前,只需简单地读取行即可。尝试将循环更改为:

 while (!inputText.endsWith("*/")) {       
        String temp = in.readLine();
        if(temp == null) {break;}
        inputText = temp;                                                           
 }
输出:(打印
StringBuilder


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

 while (!inputText.endsWith("*/")) {       
        String temp = in.readLine();
        if(temp == null) {break;}
        inputText = temp;                                                           
 }
输出:(打印
StringBuilder


您从未在while循环中重置
inputText
的值
inputText
while(!inputText.endsWith(“*/”)
循环中从未更改。@Arnaud是的,BufferedReader与
/*
行了一行,我不明白如何跳转到下一行。.您从未在while循环中重置
inputText
的值
inputText
中从未更改,而(!inputText.endsWith(“*/”)
循环。@Arnaud是的,BufferedReader使用
/*
执行了一行操作,我不明白如何跳到下一行..我在
while
中捕获
NullPointException
loop@SpikeJohnson在哪一行?while(!inputText.endsWith(“*/”){我在这个
while中捕获
NullPointException
loop@SpikeJohnson在哪一行?同时(!inputText.endsWith(“*/”){