当尝试读取文本文件的内容时,我收到错误消息" java.lang.ClassCastException:org.openstack4j.openstack.common.DLPayloadEntity与java.io.File"不兼容。
如何在不将文本写入新文件的情况下阅读文本文件?
我尝试使用Apache Commons / IO库' readFiletoString()'将文件直接转换为String。方法:
public String test() {
ObjectStorageDAO os;
List<String> containers = null;
String str = null;
try {
os = new ObjectStorageDAO(auth_url, userId, password, project, domainName);
// List the containers
containers = os.containers();
SwiftObject so = os.getObject("MyContainer", "message.txt");
File file = (File) so.download();
str = FileUtils.readFileToString(file, "UTF-8");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
str = e.toString();
}
return str;
}
答案 0 :(得分:2)
简而言之,您正在获得类强制转换异常,因为您尝试将一种数据类型的对象(即DLPayloadEntity)转换为另一种(即文件)。
SwiftObject so = os.getObject("MyContainer", "message.txt");
DLPayloadEntity payload = so.download();
使用“payload”对象,您可以按照以下方式检索响应;
您可以执行以下操作来检索文本;
InputStream stream = payload.getInputStream();
“stream”对象允许您读取字节。