我的问题是如何使用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
就像我想要的那样
答案 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来访问结果。