0

尝试读取文本文件的内容时,我收到错误消息“java.lang.ClassCastException:org.openstack4j.openstack.common.DLPayloadEntity 与 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;

}
4

1 回答 1

2

简而言之,您会遇到类转换异常,因为您尝试将一种数据类型(即 DLPayloadEntity)的对象转换为另一种数据类型(即文件)。

    SwiftObject so = os.getObject("MyContainer", "message.txt");
    DLPayloadEntity payload = so.download();

使用“payload”对象,您可以通过以下方式检索响应;

  • 获取HttpResponse()
  • 获取输入流()
  • writeToFile(文件文件)

您可以执行以下操作来检索文本;

InputStream stream = payload.getInputStream();

“流”对象允许您读取字节。

于 2016-12-28T23:02:20.517 回答