- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 MainActivity.java 中
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://192.168.5.10/ijoomer_development/index.php?option=com_ijoomer&plg_name=jomsocial&pview=user&ptask=login&tmpl=component");
StringBuffer strBuffer = new StringBuffer("<data><username>" + username + "</username><password>" + password + "</password><lat>" + lat +"</lat><long>"+ longi +"</long></data>");
StringEntity strEntity = new StringEntity(strBuffer.toString());
post.setEntity(strEntity);
HttpResponse response = client.execute(post);
InputStream in = response.getEntity().getContent();
MainActivity mActivity = new MainActivity();
System.out.println(mActivity.convertStreamToString(in));
demoHandler = new DemoHandler();
ArrayList<UserBean> users = demoHandler.parse(in);
Log.i("VALUE OF USER",""+users);
在 DemoHandler.java 中
public ArrayList<UserBean> parse(InputStream in) {
try {
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(in, this);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return records;
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
data.replace(0, data.length(), "");
if(localName.equalsIgnoreCase(ROOT_TAG))
bean = new UserBean();
}
public void characters(char[] ch, int start, int length) throws SAXException {
data.append(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException
{
if(localName.equalsIgnoreCase(TAG_USERNAME))
bean.username = data.toString().trim();
else if(localName.equalsIgnoreCase(TAG_PASSWORD))
bean.password = data.toString().trim();
else if(localName.equalsIgnoreCase(TAG_LAT))
bean.lat = data.toString().trim();
else if(localName.equalsIgnoreCase(TAG_LONG))
records.add(bean);
}
public String convertStreamToString(InputStream in) throws IOException {
if (in != null) {
writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
in.close();
}
return writer.toString();
} else {
return "";
}
}
}
我在 ArrayList<UserBean> users = demoHandler.parse(in);
行遇到错误在 MainActivity.java 中
我在 parser.parse(in, this);
行收到另一个错误在 DemoHandler.java 中
异常(exception):
03-19 11:25:03.108: WARN/ExpatReader(297): DTD handlers aren't supported.
03-19 11:25:03.108: WARN/System.err(297): java.io.IOException: Attempted read on closed stream.
03-19 11:25:03.169: WARN/System.err(297): at org.apache.http.conn.EofSensorInputStream.isReadAllowed(EofSensorInputStream.java:127)
03-19 11:25:03.169: WARN/System.err(297): at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:176)
03-19 11:25:03.169: WARN/System.err(297): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:504)
03-19 11:25:03.169: WARN/System.err(297): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:467)
03-19 11:25:03.169: WARN/System.err(297): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)
03-19 11:25:03.169: WARN/System.err(297): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
03-19 11:25:03.209: WARN/System.err(297): at javax.xml.parsers.SAXParser.parse(SAXParser.java:361)
03-19 11:25:03.219: WARN/System.err(297): at javax.xml.parsers.SAXParser.parse(SAXParser.java:240)
03-19 11:25:03.219: WARN/System.err(297): at com.demo.parsing.DemoHandler.parse(DemoHandler.java:69)
03-19 11:25:03.219: WARN/System.err(297): at com.demo.parsing.MainActivity$1.onClick(MainActivity.java:119)
03-19 11:25:03.219: WARN/System.err(297): at android.view.View.performClick(View.java:2364)
03-19 11:25:03.219: WARN/System.err(297): at android.view.View.onTouchEvent(View.java:4179)
03-19 11:25:03.219: WARN/System.err(297): at android.widget.TextView.onTouchEvent(TextView.java:6540)
03-19 11:25:03.219: WARN/System.err(297): at android.view.View.dispatchTouchEvent(View.java:3709)
03-19 11:25:03.219: WARN/System.err(297): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-19 11:25:03.219: WARN/System.err(297): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-19 11:25:03.219: WARN/System.err(297): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-19 11:25:03.219: WARN/System.err(297): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-19 11:25:03.219: WARN/System.err(297): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
03-19 11:25:03.219: WARN/System.err(297): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
03-19 11:25:03.219: WARN/System.err(297): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
03-19 11:25:03.219: WARN/System.err(297): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
03-19 11:25:03.239: WARN/System.err(297): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
03-19 11:25:03.239: WARN/System.err(297): at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 11:25:03.239: WARN/System.err(297): at android.os.Looper.loop(Looper.java:123)
03-19 11:25:03.239: WARN/System.err(297): at android.app.ActivityThread.main(ActivityThread.java:4363)
03-19 11:25:03.239: WARN/System.err(297): at java.lang.reflect.Method.invokeNative(Native Method)
03-19 11:25:03.239: WARN/System.err(297): at java.lang.reflect.Method.invoke(Method.java:521)
03-19 11:25:03.239: WARN/System.err(297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-19 11:25:03.239: WARN/System.err(297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-19 11:25:03.329: WARN/System.err(297): at dalvik.system.NativeStart.main(Native Method)
03-19 11:25:03.329: INFO/VALUE OF USER(297): []
最佳答案
好吧,我看到你先调用这个:
System.out.println(mActivity.convertStreamToString(in));
假设在您的 DemoHandler 中与下面的 converSTreamToSTring 相同,则此函数调用
in.close();
所以你的流现在关闭了。如错误所述,您稍后将尝试在此行中对流进行操作:
ArrayList<UserBean> users = demoHandler.parse(in);
所以我对您收到 java.io.IOException: Attempted read on closed stream.
错误并不感到惊讶。因为您首先关闭了流,然后尝试用它做一些事情。
关于android - 我在以下代码中收到类似 Attempted read on close stream 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360438/
我正在尝试实现具有以下签名的方法: public static Pair, Stream> flatten(Iterator, Stream>> iterator); 该方法的目标是将每种流类型展平
我有两个流从两个不同的 api 获取。 Stream get monthOutStream => monthOutController.stream; Stream get resultOutStre
Stream.of(int[])返回 Stream ,而 Stream.of(String[])返回 Stream . 为什么这两种方法的行为不同?两者都应该返回 Stream和 Stream或 St
我正在使用 rxdart在 dart 中处理流的包。我被困在处理一个特殊的问题上。 请看一下这个虚拟代码: final userId = BehaviorSubject(); Stream getSt
我到处都找遍了,还是没弄明白。我知道你可以用流建立两个关联: 用于支持数据存储的包装器意味着作为消费者和供应商之间的抽象层 数据随着时间的推移变得可用,而不是一次全部 SIMD 代表单指令,多数据;在
考虑下面的代码: List l=new ArrayList<>(); l.add(23);l.add(45);l.add(90); Stream str=l.stream
我有一个大型主干/requirejs 应用程序,我想迁移到 webpack,最新的“webpack”:“^4.27.1”,但我遇到了一个我无法解决的错误。 我一直在阅读 https://webpack
我正在使用 xmpp 开发聊天应用程序,根据我们的要求,我们有三台服务器 Apache Tomcat 7、ejabbered 2.1.11 和 mysql 5.5, to run xmppbot on
我知道如何使用 Java 库,并且我可以编写一些循环来执行我需要的操作,但问题更多,为什么 scala.collection.JavaConverters 中没有任何内容或scala.collecti
我正在尝试创建一个单一的衬里,它应该计算一个非常长的文本文件中的唯一单词。独特的词例如:márya fëdorovna scarlet-liveried,...所以基本上都是非英语词。 我的问题是我的
如果我有以下情况: StreamWriter MySW = null; try { Stream MyStream = new FileStream("asdf.txt"); MySW =
有人可以帮我将以下语句转换为 Java8: 我有一个像这样的 HashMap : private Map, List>> someMap; 我想在java8中转换以下逻辑: private Strin
有人可以帮我将以下语句转换为 Java8: 我有一个像这样的 HashMap : private Map, List>> someMap; 我想在java8中转换以下逻辑: private Strin
考虑两种测试方法parallel()和sequential(): @Test public void parallel() throws Exception { System.ou
我是 NodeJS 的新手,我基本上想做的是通过 HTTP 将 .pdf 上传到我的服务器。我正在使用 POST rquest 来处理 Content-Type multipart/form-data
哪个更好:MemoryStream.WriteTo(Stream destinationStream) 或 Stream.CopyTo(Stream destinationStream)?? 我正在谈
给定一个 Stream,我想创建一个新的 Stream,其中的元素在它们之间有时间延迟。 我尝试使用 tokio_core::reactor::Timeout 和 Stream 的 and_then
我是 Kafka Streams 和 Spring Cloud Stream 的新手,但在将集成相关代码移动到属性文件方面已经阅读了有关它的好东西,因此开发人员可以主要专注于事物的业务逻辑方面。 这里
源代码看起来非常相似:pump , pipe .为什么我要使用一个而不是另一个?一个只是另一个的更好版本吗? 最佳答案 Stream.pipe 现在显然是自 0.3.x 以来的首选方法,因此尽可能尝试
我正在寻找是否有更好的方法来解决我不得不使用这些签名的困境(注意:由于 Spock 测试,T[][] 是必需的,我提供 T[][] 作为数据提供商) 我的方法签名是: public T[][] cr
我是一名优秀的程序员,十分优秀!