我在写Android。应用程序应从Web读取文件的行,并在textView上显示该消息。我使用bufferedReader。当我在while循环中有bufferedReader.readLine()时它工作正常。但是当我在IF语句中使用它时它不起作用(尽管我在调试模式中看到了什么,但没有显示任何内容)。
@Override
protected String doInBackground(String... params) {
HttpURLConnection urlConnection = null;
String result = "";
try {
URL url = new URL("http://www.tc.umn.edu/~yang4131/jtest.json");
urlConnection = (HttpURLConnection) url.openConnection();
int code = urlConnection.getResponseCode();
if(code==HttpURLConnection.HTTP_OK){ // 200
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
if (in != null) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
String line = "";
/*
if((line = bufferedReader.readLine()) != null)
result += line;
if((line = bufferedReader.readLine()) != null)
result += line;
if((line = bufferedReader.readLine()) != null)
result += line;
*/
while ((line = bufferedReader.readLine()) != null)
result += line;
}
in.close();
}
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally {
urlConnection.disconnect();
}
return result; // this return statement is needed, no matter what
}
我在Eclipse中使用本地文件在纯Java中复制了这个东西。它工作正常。我真的不知道。
答案 0 :(得分:0)
解决。
在连接后添加result += "\n\n\n\n";
将使内容显示。我认为这与UI有关,也许我的textView被阻止了几行或诸如此类的东西。