2011-10-19 2 views
0

私はEclipseで作業しています。誰かがこのコードがどこからファイルを取得しようとしているのか知っていますか? 私は自分のファイルをプロジェクトフォルダとsrr/package_pathフォルダにコピーしました。Android load local xmlファイル

私はその資産フォルダまたはRESフォルダ どちらか私は正確に

日食では、ファイルエクスプローラ]タブ に行くそこに一度DDMSに行く場所を見つけるために、DDMSのファイルエクスプローラを使用することをお勧めだろうと思う

public String getFromFile(ASerializer aserializer) { 
    String data = new String(); 
    try { 
    FileInputStream stream = new FileInputStream(new File(aserializer.toLocalResource())); 
     FileChannel fc = stream.getChannel(); 
     MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); 
     /* Instead of using default, pass in a decoder. */ 
     data = Charset.defaultCharset().decode(bb).toString(); 
     stream.close(); 
    } 
    catch (Exception e){ 
     data = "File not found"; 
    } 
    return data; 
} 
+0

'ASerializer'クラスの詳細情報を提供してください –

+0

シリアライザはファイル名のみを返します。私はちょうどgetFromFileがどこを見ているのかわかりません。 defaulrフォルダとは何ですか? – iCantSeeSharp

答えて

1

そのコードはFileInputStreamのため、 Androidファイルシステム全体のファイルへのパス。つまり、ファイルシステムのルートは、アプリケーションシステムのどこかではなく、Androidシステム全体が存在するファイルシステムのルートになります。 InputStreamを取得する

InputStream inputStream = getResources().getAssets().open("file.xml"); 

ファイル名に基づいて、アプリケーションのリソースからファイルをロードする場合、あなたはEclipseのアプリケーションプロジェクトの「資産」ディレクトリ内のファイルを入れた後、使用することができます作業するファイルの名前。 AssetManager.open()に与えられたパスは、 'assets'ディレクトリからの相対パスです。

InputStream inputStream = getResources().getAssets().open("subdirectory/file.xml"); 
+0

assetsフォルダでは、.xmlファイルの名前を.txtに変更する必要がありました。なぜなら、プログラムがコンテンツを解析するためですが、とにかく移動する場所だったからです。 – iCantSeeSharp

+0

https://stackoverflow.com/questions/2856407/android-how-to-get-access-to-raw-resources-that-i-put-in-res-folder/2856501#2856501を参照してください。 – fangzhzh

0

あなたのアプリケーションはdata/data/package名で見つかるはずです(メモリから少し離れている可能性があります)。パッケージ名内のフォルダを検索してください。