Load a simple text file in Android Studio

老子叫甜甜 提交于 2019-11-26 17:38:47

问题


Got a brand new project using Google's new Android Studio IDE.

I'm trying to load a simple text file using an InputStreamReader. I'm getting a file not found exception. Now there isn't any assets/ folder. I tried to create one and add my file at many different spots (at the root of the project, at the root of the .java file, etc...) I've tried to move the file around but still get the file not found.

Now that never was a problem using Eclipse as there is an assets folder created by any template.

Does anyone know where should the assets go to or how to load them?

Here is the code used, it fails at .open():

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

I also tried this code in Eclipse, it works and the file contents get loaded. So there's probably a step needed in Android Studio.


回答1:


  1. Step 1: Open in Name_Project-Name_Project.iml file.
  2. See the line : option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets"
  3. Step 2: Create a sub-folder "assets" in main folder.
  4. Step 3: Put file in this folder.
  5. Step 4: Load it. Done.



回答2:


The correct answer didn't work for me exactly. This works:

Go to Project view and then go to app/src/main and create new directory assets

to load the file:

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

or:

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

and then convert it to string at any way you want, examples here

detailed video of how to do it (not mine)




回答3:


This code will work for you.It will fetch all data from file.

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());


}//
        }


来源:https://stackoverflow.com/questions/16821182/load-a-simple-text-file-in-android-studio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!