2012-03-28 14 views
5

に型「System.IO.Stream」を変換できませんが、それらのどれもIOを扱っていません。は、暗黙のうちに、私はSOにいくつかの類似した質問に言及「java.io.InputStreamを」

私はEclipseを使用したとき、私はJavaで同じコードを使用していました。その時、それは働いた。

しかし、今、私はMono for Android(C#の)でこのコードを使用しようと、それは動作しません。

私はInputStream作成するには、このコードを実行しようとしている:

InputStream myInput =ctx.Assets.Open(DATABASE_NAME + ".db"); 

をしかし、それは私のコンパイル時にエラーを与えている:Cannot implicitly convert type 'System.IO.Stream' to 'Java.IO.InputStream'

資産からファイルをコピーするための直接的な機能がありますデバイスメモリに転送する必要がありますが、転送元と転送先のパスが必要です。

はどのようにしてソースパスを得るのですか?

私は絶対初心者ですので、Mono for Androidには、が役に立ちました。 Android用

+0

は私のコードの行以上のポート行う方法はないの両方を一緒 – Kai

+0

しかし、その後、あなたはJavaとモノコードが欠落しているように、次の2つのいずれかを使用することができルックス、しかし? – GAMA

+0

すべてのJavaコーヒーをMonoに変換する必要があります。 Androidでプログラムを実行したい場合は、Monoで書き込みたいという理由はありますか? – Kai

答えて

8

モノは、Javaは、.NETは、.NETのようなプラットフォーム間のコード共有を容易に構築する「同等」に構築いくつかを変換します。その一環として、java.io.InputStreamjava.io.OutputStreamSystem.IO.Streamにマッピングされているため、コンパイラのエラーです。

System.IO.Stream上に存在しないInputStream上に存在している必要なものはありますか?

アセットからデバイスメモリにファイルをコピーするための直接的な機能がありますが、ソースとデスティネーションのパスが必要です。

私はここで何を意味しているのですか?InputStream方法はここでは参照していません。あなたはそれを行うためにStream.CopyTo(Stream)を使用することができます。

Stream asset = context.Assets.Open(DATABASE_NAME + ".db"); 
string dbPath = System.IO.Path.Combine(
     System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), 
     "YourFile.xml"); 
using (var dest = System.IO.File.OpenWrite(destPath)) 
    asset.CopyTo(dest); 
関連する問題