web-dev-qa-db-ja.com

Android Studioで単純なテキストファイルを読み込みます

Googleの新しいAndroid Studio IDE。

InputStreamReaderを使用して単純なテキストファイルをロードしようとしています。ファイルが見つからないという例外を取得しています。現在、assets /フォルダーはありません。ファイルを作成して、さまざまな場所(プロジェクトのルート、.Javaファイルのルートなど)にファイルを追加しようとしました。ファイルを移動しようとしましたが、見つかりました。

テンプレートによって作成されたアセットフォルダーがあるため、Eclipseの使用に問題はありませんでした。

誰が資産をどこに行けばよいのか、どのようにそれらをロードするのかを知っていますか?

使用されるコードは次のとおりです。open()で失敗します。

InputStream iS = resources.getAssets().open("bla.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(iS));

また、Eclipseでこのコードを試したところ、動作し、ファイルの内容が読み込まれました。したがって、おそらくAndroid Studioで必要なステップがあります。

30
Yohann T.
  1. ステップ1:Name_Project-Name_Project.imlファイルで開きます。
  2. 行を参照してください:option name = "ASSETS_FOLDER_RELATIVE_PATH" value = "/ src/main/assets"
  3. ステップ2:メインフォルダーにサブフォルダー「アセット」を作成します。
  4. ステップ3:このフォルダーにファイルを入れます。
  5. ステップ4:ロードします。できた.
87
FIT226557

正しい答えは私には正確に機能しませんでした。これは動作します:

プロジェクトビューに移動してからapp/src/mainおよび新しいディレクトリを作成assets

ファイルをロードするには:

   InputStream is = getApplicationContext().getAssets().open("bla.txt");

または:

   InputStream is = context.getAssets().open("bla.txt");

そして、あなたが望む任意の方法で文字列に変換します ここの例

詳細なビデオ 方法(私のものではない)

2
Nagmon

このコードはあなたのために働きます。ファイルからすべてのデータを取得します。

public class Quiz extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quiz);
    try {
        PlayWithRawFiles();
    } catch (IOException e) {
        Toast.makeText(getApplicationContext(),
                "Problems: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }
}// onCreate

public void PlayWithRawFiles() throws IOException {
    String str="";
    StringBuffer buf = new StringBuffer();
    InputStream is = this.getResources().openRawResource(R.raw.ashraf);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    if (is!=null) {
        while ((str = reader.readLine()) != null) {
            buf.append(str + "\n" );
        }
    }
    is.close();
   TextView tv=(TextView)findViewById(R.id.tv1);
    tv.setText(buf.toString());


}//
        }
1
Ashraf