2016-12-28 16 views
0

テキストファイルの内容を読み込もうとすると、「java.lang.ClassCastException:java.io.Fileと互換性のないorg.openstack4j.openstack.common.DLPayloadEntity」というエラーメッセージが表示されました。 。オブジェクトストレージ - テキストファイルを読み取る際のエラー

新しいファイルに書き込まずにテキストファイルを読むにはどうすればよいですか?あなたがキャストしようとするので、あなたがクラスのキャスト例外を取得している要するに

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; 

} 

答えて

2

は、私は、Apache Commonsの/ IOライブラリの「readFiletoString()」メソッドを使用して文字列に直接ファイルを変換しようとしましたあるデータ型(つまりDLPayloadEntity)から別のデータ型(File)へのオブジェクト。

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

"payload"オブジェクトを使用すると、次の方法で応答を取得できます。

  • getHttpResponse()
  • のgetInputStream()
  • はWRITETOFILE(ファイルファイル)

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

InputStream stream = payload.getInputStream(); 

"stream"オブジェクトでは、バイトを読み取ることができます。

+0

ファイルをInputStreamとして読み込み、それをStringに変換して問題を解決しました。 tryブロックを に変更しました。{os = new DictionaryDAO(auth_url、userId、password、project、domainName); \t \t \t //コンテナをリストする \t \t \t containers = os.containers(); \t \t \t SwiftObject so = os.getObject( "SpellChecking"、 "english.dic"); \t \t \t DLPayload file = so.download(); \t \t \t str = getStringFromInputStream(file.getInputStream()); \t \t \t \t \t \t \t \t} https://www.mkyong.com/java/how-to-convert-inputstream-to-string-in-java/ –

関連する問題