0

テキスト ファイルの内容を読み取ろうとすると、「java.lang.ClassCastException: org.openstack4j.openstack.common.DLPayloadEntity incompatible with 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;

}
4

1 に答える 1

2

つまり、あるデータ型 (つまり DLPayloadEntity) のオブジェクトを別の (つまりファイル) にキャストしようとするため、クラス キャスト例外が発生します。

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

「ペイロード」オブジェクトを使用すると、次の方法でレスポンスを取得できます。

  • getHttpResponse()
  • getInputStream()
  • writeToFile(ファイル ファイル)

テキストを取得するには、次の操作を実行できます。

InputStream stream = payload.getInputStream();

「ストリーム」オブジェクトを使用すると、バイトを読み取ることができます。

于 2016-12-28T23:02:20.517 に答える