2011-01-02 9 views
0

私はWebViewで表示したいWebサイトから特定のフレームを取得する必要があるため、ネットから.htmlを取得し、file:/// data/dataに保存することにしました//files/file.html。私は正規表現やStringメソッドを使ってそれを編集することができます。Androidのファイルシステムからリソースを書き込む

ここで2つの質問: このファイルをリソースにバインドする方法はありますか?例えば/res/raw/file.htmlを編集して、それを動的に更新しますか?または、ファイルに直接リソースに書き込むことはできますか?

私がそこでやっていることは、まったくいいですか?つまり、Webページから2つのタグ間で.htmlコードを取得し、WebView経由で表示する方がよい場合があります。

種類は、私は、アプリケーション資産が読み取り専用であることを信じてい マルクス

答えて

0

について。だからあなたは何も書き込むことはできません。

しかし、内部(デバイスメモリ)ファイルディレクトリにアクセスしてそこにデータを書き込むことはできます。ファイルを自動的に更新する場合は、コード内でファイルの世話をする必要があります。ここで

は、あなたのアプリケーションのファイルのディレクトリに(私の場合、ストリームには)私がファイルにfile.htmlを書くためにこれをした

// ... code ... 
// assumed variables: 
// InputStream data, String directory, String filename 
File storageLocation = new File(directory, filename) 
try { 
    FileOutputStream outputStream = new FileOutputStream(storageLocation); 
    byte[] buff = new byte[0x2000]; 
    int bytesRead = 0; 
    DataOutputStream dos = new DataOutputStream(outputStream); 
    while((bytesRead = data.read(buffer)) > 0) { dos.write(buffer, 0, bytesRead); } 
    dos.flush(); 
    dos.close(); 
    outputStream.close(); 
} catch (Exception e) { 
    // TODO: Actually handle the exception 
    e.printStackTrace(); 
} 
// ... more code ... 
+0

おかげでファイルの書き込みについては行くだろう方法の例です: ///data/data//files/file.htmlしかし、私はこれをAndroidのリソースに載せたいと思っています。もう1つの問題は、loadDataWithBaseURLを使用してファイルを読み込むことができないということです。 – Markus

+0

ファイルの名前が分かっている場合は、ファイル入力ストリームを作成してファイルを取得することができますファイルのディレクトリがContext#getFilesDir csaunders

+0

です。申し訳ありませんが、括弧で囲まれたURLのスタックオーバーフローのコメントに問題があります。 AndroidのドキュメントのContextでgetFilesDirを検索するだけです。それはあなたを助けるはずです。 – csaunders

関連する問題