1

私はAndroid開発の初心者であり、テキストファイルからデータを読み取り、それをListViewに表示する簡単なアプリケーションを作成しようとしています。問題は、私の読者が私のファイルを見つけられないことです。私は自分のアプリケーションをデバッグしました、そしてそれは私が思いついた結論です。では、読者がテキストファイルを見つけるには、テキストファイルをどこに配置する必要がありますか?ここにいくつかのコードがあります:

     try
    {
          FileInputStream fstream = new FileInputStream("movies.txt");
          DataInputStream in = new DataInputStream(fstream);
          BufferedReader br = new BufferedReader(new InputStreamReader(in));

          String strLine;

          while ((strLine = br.readLine()) != null)
          {
              filme.add(strLine);
              Log.d(LOG_TAG,"movie name:" + strLine);
          }
          in.close();
    }
    catch (Exception e)
    {
                System.err.println("Error: " + e.getMessage());
    }

ありがとう!

4

4 に答える 4

1

movies.txtという名前のファイルをres/rawに入れてから、次のコードを使用します

String displayText = "";
try {
InputStream fileStream = getResources().openRawResource(
                    R.raw.movies);
int fileLen = fileStream.available();
// Read the entire resource into a local byte buffer.
byte[] fileBuffer = new byte[fileLen];
fileStream.read(fileBuffer);
fileStream.close();
displayText = new String(fileBuffer);
} catch (IOException e) {
  // exception handling
}
于 2012-08-29T06:59:42.547 に答える
0
FileInputStream fstream = new FileInputStream("movies.txt");

movies.txtのパスはどこにありますか?保存した場所にSDカードまたは内部ストレージとしてパスを指定する必要があります。

まるでSDカードに入っているかのように

 FileInputStream fstream = new FileInputStream("/sdcard/movies.txt");
于 2012-08-29T07:01:05.567 に答える
0

通常、ファイルを開きたいときは、プロジェクトのresフォルダーにファイルを置きます。テキストファイルを開きたい場合は、res/rawディレクトリに置くことができます。Android eclipseプラグインは、テキストファイルへのハンドルを含むResourceクラスを生成します。

ファイルにアクセスするには、アクティビティでこれを使用できます。

InputStream ins = getResources().openRawResource(R.raw.movies);

ここで、「movies」はファイルタイプを除いたファイルの名前です。

于 2012-08-29T07:06:48.040 に答える
0

ファイルをSDカードに保存する場合は、でSDカードのルートを取得できますEnvironment.getExternalStorageDirectory()

たとえば、SDカードがコンピューターにマウントされている場合、SDカードにアクセスできない可能性があることに注意してください。

次のように、外部ストレージの状態を確認できます。

boolean externalStorageAvailable = false;
boolean externalStorageWriteable = false;    

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    externalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    externalStorageAvailable = true;
    externalStorageWriteable = false;
} else {
    externalStorageAvailable = mExternalStorageWriteable = false;
}

if(externalStorageAvailable && externalStorageWriteable){
    File sdRoot = Environment.getExternalStorageDirectory();
    File myFile = new File(sdRoot, "path/to/my/file.txt");
}
于 2012-08-29T07:34:12.300 に答える