2012-01-10 11 views
1

以下のコードを使用して、ハードドライブからファイル入力ストリームにファイルをロードしようとしています。ファイルが見つかりませんFile Input Streamを使用した例外

package com.filefinder1; 

import java.io.File; 
import java.io.FileInputStream; 
import android.app.Activity; 
import android.os.Bundle; 

public class FileFinder_1Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try 
     { 
     String pathToFile = "C:\\\\Koala_Small.jpg"; 
     System.out.println("File Path: "+pathToFile); 
     File file = new File(pathToFile); 
     FileInputStream fileInputStream = new FileInputStream(file); 
    } 
    catch (Exception ex) 
    { 
    System.out.println("Error Catch Triggered: "+ex); 
    } 
    } 
} 

私は、ファイル・パス上のさまざまなバリエーションの束を試してみたが、何もすべてが次のエラーを返します。

01-10 10:59:06.189: I/System.out(2218): Error Catch Triggered: java.io.FileNotFoundException: /C:\\Koala_Small.jpg (No such file or directory) 

いくつかの場所の余分は「/」を追加取得しているように見える道に沿ってファイルのパスに移動します(理由はわかりません)。私は前にそれが返すファイルの変数にそれをロードしようとするファイルのパスを印刷するシステムを頼むときは:私は、ファイルパスのさまざまなバリエーションの束を試してみました

01-10 10:59:06.189: I/System.out(2218): File Path: C:\\Koala_Small.jpg 

(、2つのスラッシュを「c」を小文字4つの代わりに...)何も問題を解決するようだ。誰が何がここで間違っているかもしれない考えを持っていますか?

+1

あなたの電話機/エミュレータは、あなたのハードドライブにアクセスするべきではありません... – snowCrabs

+0

@snowCrabsは右です – Sap

+1

C:\\\\ Koala_Small.jpg?それはスラッシュのトンです...また、単一のスラッシュを使用してみてください。 C:/など。 – Max

答えて

5

パスに対してのみ2スラッシュを使用してください。

次に、あなたの活動から次のコマンドを実行します。

getAssets().open("Koala_Small.jpg"); 

これは、あなたの入力ストリームを返します。

コメントに記載されているように、エミュレータはあなたのPCファイルシステムにアクセスすることはできません。

+0

ありがとうございました。この解決策は機能します。 –

0

場所エミュレータドライブ内のファイルとあなたがあなたのアンドロイドのプロジェクトであなたの資産のディレクトリにファイルを置く必要があり

関連する問題