如何使用java存储从php文件中检索数据

时间:2014-01-28 05:17:19

标签: java php arrays

我的问题是如何使用java从web文件存储数据 (我可以查看php文件,但无法将其存储到我的数组变量中)。这可能会对其他人有所帮助。

//http://sampleonly.com.my/getInfo.php //this url is not exist. just for example

<?php
echo("Ridzuan");
echo("split");
echo("Malaysia");
echo("split");
?>
// i want to get the echo "Ridzuan" and "Malaysia". i dont want echo "split".

下面是我当前的代码

    URL connectURL = new URL("http://sampleonly.com.my/getInfo.php");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(connectURL.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

        //array below should store input from .php file after i thrown "split" text
        String[] strArray2 = inputLine.split(Pattern.quote("split"));

    in.close();

错误输出:

Exception in thread "main" java.lang.NullPointerException

我已经提到了这个问题,Retrieving info from a file但是很难理解代码。 perhap这里的任何好人都可以为我提供有关如何将回显数据从php文件存储到我的java数组变量的有效代码。

提前感谢民众。

ANSWER 归功于JJPA

    URL connectURL = new URL("http://vmalloc.in/so.php");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(connectURL.openStream()));

    String inputLine;
    StringBuilder sb = new StringBuilder();
    while ((inputLine = in.readLine()) != null){     
        System.out.println(inputLine);
        sb.append(inputLine);
    }
    String[] strArray2 = sb.toString().split(Pattern.quote("split"));
    System.out.println(strArray2[0]);
    System.out.println(strArray2[1]);

    in.close();

输出结果:

    Ridzuan
    Malaysia  

就像我想要的那样

3 个答案:

答案 0 :(得分:1)

是的,您应该在inputLine中获得该例外。要知道我建议你调试你的代码。

作为解决方案,请尝试以下代码。

 URL connectURL = new URL("http://vmalloc.in/so.php");
    BufferedReader in = new BufferedReader(new InputStreamReader(
            connectURL.openStream()));

    String inputLine;
    StringBuilder sb = new StringBuilder();
    while ((inputLine = in.readLine()) != null) {
        System.out.println(inputLine);
        sb.append(inputLine);
    }
    // array below should store input from .php file after i thrown "split"
    // text
    String[] strArray2 = sb.toString().split("split");
    System.out.println(strArray2);
    in.close();

答案 1 :(得分:0)

使用花基于while块。否则,您在while块之后使用null inputLine。那是因为当inputLine为空时您将离开循环。因此,当试图使用相同的内容时,它会抛出一个NullPointerException

while ((inputLine = in.readLine()) != null) {
   System.out.println(inputLine);

   //array below should store input from .php file after i thrown "split" text
   String[] strArray2 = inputLine.split(Pattern.quote("split"));
   // do whatever you want with this array
} // while

答案 2 :(得分:0)

您收到NullPointerException,因为您的inputLine为NULL。您正在运行循环,直到inputLine为NULL,然后在循环终止后,您正在使用该NULL变量来获取php结果。而是根据您的需要将其存储在临时变量(String或数组)中。

例如,如果您需要将其存储在字符串中,可以按照以下方式执行

String inputLine, temp="";
while ((inputLine = in.readLine()) != null){
   temp.concat(inputLine);
   System.out.println(inputLine);
}

然后使用变量temp来访问结果。