2012-01-03 20 views
0

Androidでファイルを読み取ることができず、ファイルを見つけることができなかったため問題が発生しました。私は今、裸の骨プログラム作成しました:AndroidプロジェクトのファイルをBufferedReaderで見つけることができません

public class LoginView extends Activity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loginpanel); 
    Button button = (Button) findViewById(R.id.btnLogin); 

    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      ReadingTest rt = new ReadingTest(); 
     } 
    }); 
} 

ReadingTest.javaを

public class ReadingTest { 

private BufferedReader br; 

public ReadingTest() { 
    try { 
     br = new BufferedReader (new FileReader("profiles")); 
     System.out.println("BufferedReader was successful..."); 
    } catch (FileNotFoundException e) { 
     System.out.println("BufferedReader was unsuccessful..."); 
     e.printStackTrace(); 
    } 
} 

私はすなわちAndroidManifest.xmlファイルと同じ場所に置かれているプロファイルファイルを読み込む必要があります。このプログラムプロジェクトルート。プログラムは、それが成功したかどうかを印刷し、残念ながらそれは不合理な印刷です。誰かがどこにファイルを置くべきか、BufferedReaderを使ってファイルにアクセスする方法を教えてもらえますか?私が移植しようとしている私のJavaプロジェクト全体は、ファイルの読み書きに依存しているので、これが完了するまで進歩することはできません。前もって感謝します!

編集:もう少し研究をしてから、主な活動でファイルを開くことができます。私は、次のコードを書いた私のメインの活動でのres /生のフォルダにprofiles.txtファイルを置く:私のBufferedReaderのが主な活動でファイルを読み込むことができますいくつかの理由

is = this.getResources().openRawResource(R.raw.profiles); 
    br = new BufferedReader(new InputStreamReader(is)); 

を、私は作成しよう別のクラスで同じコードを使用するBufferedReaderを呼び出し、クラスを呼び出してVMをシャットダウンし、logcatのFATAL EXCEPTION:mainを呼び出します。任意のアイデアをどのように私はそれを動作させるために上記のコードを変更することができますか?

+0

"このプログラムは...(残りのナンセンス)" ...あなたは最初にアンドロイドの基礎を読んでください...あなたはapkのapestsフォルダからファイルを読むことができます(apkはzipです)そこに書き込むことはできません... – Selvin

+0

申し訳ありませんが、 "読む"は間違った言葉でした。私はそれがそれへの接続を作成しようとしていることを意味しました。私はあなたが言っていることを正確にはわかりません:私はassestsフォルダを配置しようとしましたが、それは動作しませんでした。この例では、私もそれに書き込むつもりはありません。 – user1058210

+0

あなたはnpinti答えに疲れましたか?あなたの編集時には:私はそれがランタイムエラーではないと思うが、あなたは 'this.getResources()' => 'this'をアクティビティまたは少なくともContextでなければならないので、 'それは動作しません... – Selvin

答えて

0

Assetsを試しましたか?

+0

コメントする必要があります! – adatapost

+0

か、答えになるかもしれません! – Selvin

-1

あなたはそれをあまりにも早く呼び出すだけで、ファイルはまだロードされていません。ストリーム上でready()を呼び出す前にThread.sleep()で再生してください。たぶん、数ミリ秒のブロックがファイルI/Oに対してちょうど正常です。

+1

あなたはあなたが何について話しているのか分からないようです... – Selvin

+0

あなたは今何を話しているのですか? – DevYudh

関連する問題