对象存储 - 读取文本文件时出错
Object Storage - Error when reading text file
在尝试读取文本文件的内容时收到错误消息 "java.lang.ClassCastException: org.openstack4j.openstack.common.DLPayloadEntity incompatible with java.io.File"。
如何在不将文本文件写入新文件的情况下读取文本文件?
我尝试使用 Apache Commons/IO 库的 'readFiletoString()' 方法将文件直接转换为字符串:
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;
}
简而言之,您会遇到 class 强制转换异常,因为您试图将一种数据类型(即 DLPayloadEntity)的对象强制转换为另一种数据类型(即文件)。
SwiftObject so = os.getObject("MyContainer", "message.txt");
DLPayloadEntity payload = so.download();
使用 "payload" 对象,您可以通过以下方式检索响应;
- getHttpResponse()
- getInputStream()
- writeToFile(文件文件)
您可以执行以下操作来检索文本;
InputStream stream = payload.getInputStream();
"stream" 对象允许您读取字节。
在尝试读取文本文件的内容时收到错误消息 "java.lang.ClassCastException: org.openstack4j.openstack.common.DLPayloadEntity incompatible with java.io.File"。
如何在不将文本文件写入新文件的情况下读取文本文件?
我尝试使用 Apache Commons/IO 库的 'readFiletoString()' 方法将文件直接转换为字符串:
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;
}
简而言之,您会遇到 class 强制转换异常,因为您试图将一种数据类型(即 DLPayloadEntity)的对象强制转换为另一种数据类型(即文件)。
SwiftObject so = os.getObject("MyContainer", "message.txt");
DLPayloadEntity payload = so.download();
使用 "payload" 对象,您可以通过以下方式检索响应;
- getHttpResponse()
- getInputStream()
- writeToFile(文件文件)
您可以执行以下操作来检索文本;
InputStream stream = payload.getInputStream();
"stream" 对象允许您读取字节。