[英]Android equivalent for org.apache.commons.io.IOUtils.toByteArray
[英]Apache Commons IO on Android
我正在开发一个使用Apache Commons IO , commons-io-2.4-bin.tar.gz的Android应用程序。
我得到一些错误,其中之一:
Could not find method java.lang.String.getBytes, referenced from method org.apache.commons.io.IOUtils.toInputStream
我想我不必担心,不是吗?
是否有其他特定的Android库我可以使用而不是Apache Commons IO?
我在这里用它:
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.web.client.DefaultResponseErrorHandler;
import org.springframework.web.client.ResponseErrorHandler;
import android.util.Log;
public class CustomResponseErrorHandler implements ResponseErrorHandler
{
private ResponseErrorHandler errorHandler = new DefaultResponseErrorHandler();
@Override
public void handleError(ClientHttpResponse response) throws IOException
{
String theString = IOUtils.toString(response.getBody());
Log.v("Error Handler", theString);
CustomException exception = new CustomException();
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("code", response.getStatusCode().toString());
properties.put("body", theString);
properties.put("header", response.getHeaders());
exception.setProperties(properties);
throw exception;
}
@Override
public boolean hasError(ClientHttpResponse response) throws IOException
{
return errorHandler.hasError(response);
}
}
在这一行:
String theString = IOUtils.toString(response.getBody());
我建议使用Apache下议院IO库源,然后将其打包到Android :)我已经在回购包装它在这里 。 只需将其导入您选择的IDE即可!
番石榴可能是一个很好的替代品。 他们的wiki声称他们与Android完全兼容:
Guava 11.0.2及更早版本与Android完全兼容,但最新的Guava版本可能需要更新的Android版本。 特别是,在Java API版本9中添加了NavigableSet和Java 6中添加的其他扩展(由Guava 12及以上版本使用),与Gingerbread相对应。
(建议关注Guava大型JAR大小的Android程序员使用ProGuard只获取他们需要的Guava部分.Guava是Android应用程序最常见的依赖项之一。)
对于IOUtils.toString()
的Guava等价物,请检查以下问题: IOUtils.toString(InputStream)的Guava等价物
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.