通过接口获取大量数据,内存溢出的问题
通过一个连接获取xml数据,但是数据量过大,导致了内存溢出,有没有解决方法呢?
代码如下:
HttpClient client = new HttpClient();
GetMethod get = new GetMethod(" http://*****");
//使用系统提供的默认的恢复策略
get.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = client.executeMethod(get);
if (statusCode != HttpStatus.SC_OK){
System.err.println("Method failed: "
+ get.getStatusLine());
}
System.out.println("charset=" +get.getResponseCharSet());
client.executeMethod(get);
InputStream is = get.getResponseBodyAsStream();
in = new BufferedReader(new InputStreamReader(is,"gb2312"));
String str = null;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
当执行到 while ((str = in.readLine()) != null) {
就报内存溢出了,说明一下,url返回的数据量比较大,大量有上万条记录,是xml形式的,各位高手给出个处理方法把,一天没搞定了。。。。
代码如下:
HttpClient client = new HttpClient();
GetMethod get = new GetMethod(" http://*****");
//使用系统提供的默认的恢复策略
get.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = client.executeMethod(get);
if (statusCode != HttpStatus.SC_OK){
System.err.println("Method failed: "
+ get.getStatusLine());
}
System.out.println("charset=" +get.getResponseCharSet());
client.executeMethod(get);
InputStream is = get.getResponseBodyAsStream();
in = new BufferedReader(new InputStreamReader(is,"gb2312"));
String str = null;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
当执行到 while ((str = in.readLine()) != null) {
就报内存溢出了,说明一下,url返回的数据量比较大,大量有上万条记录,是xml形式的,各位高手给出个处理方法把,一天没搞定了。。。。
...全文
相关推荐
使用JNA替代JNI调用DLL,并解决内存溢出问题
问题描述: 在开发项目过程中,需要处理算法分析出来二进制流数据,并对数据解析处理转发。我们上层应用平台是使用java开发的,但开放平台是使用c++开发,虽提供给我们对应的.h头文件,但在java中来解析这些数据就显然有些复杂,在实现、效率上都可能不太理想。 解决方案: 请C++同事帮忙写个dll程序,dll去解析开发平台输出的二进制流数据,上层应用平台调用dll得到json报文,然后再去做一些业务处理。 那现在上层应用面临的问题:访问java外部功能接口实现方式(即调用dll)怎么选择及实现?
spring mvc重定向导致内存溢出解决方案
spring mvc重定向导致内存溢出解决方案
数据库更新工具+tomcat内存溢出解决办法+birt
数据库更新工具 tomcat内存溢出解决办法 在Birt中使用Web Services数据源
Kettle分页循环获取数据[可运行源码]
本文详细介绍了Kettle工具中两种循环分页获取HTTP接口数据的方法。第一种方法通过JavaScript控制循环次数,适用于数据量较小的场景,但循环次数过多可能导致内存溢出;第二种方法通过生成循环页数列表,有效解决了内存问题。文章从场景介绍、案例适用范围、JOB设置、运行结果到分步骤设计进行了全面解析,并提供了实际测试验证。作者还提醒读者注意关键设置点,如变量替换、参数传递等,并欢迎读者在遇到问题时通过QQ群或个人QQ进行交流。
浅谈java内存管理与内存溢出异常
下面小编就为大家带来一篇浅谈java内存管理与内存溢出异常。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


Web 开发

