When trying to read the content of a text file I received the error message "java.lang.ClassCastException: org.openstack4j.openstack.common.DLPayloadEntity incompatible with java.io.File".
How can I read the text file without writing it into a new file?
I tried to convert the file directly into String by using Apache Commons/ IO library's 'readFiletoString()' method:
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;
}
In short, you're getting class cast exception because you try to cast an Object of one data type (i.e. DLPayloadEntity) to another (i.e. File).
With "payload" object, you can retrieve the response following ways;
You can do the following to retrieve the text;
"stream" object allows you to read bytes.