Android path to asset txt file

后端 未结 6 1119
醉梦人生
醉梦人生 2020-11-27 06:16

I\'m doing:

FileReader fin = new FileReader(\"file:///android_asset/myFile.txt\");

in an Android project and many variations. At runtime I get a

相关标签:
6条回答
  • 2020-11-27 06:57
    AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
    FileReader reader = new FileReader(descriptor.getFileDescriptor());
    

    Try using the above with FileDescriptors. Seems to be the most foolproof way I've found to gather asset paths.

    0 讨论(0)
  • 2020-11-27 07:02
    AssetManager am = context.getAssets();
    InputStream fs = am.open("myFile.txt");
    
    0 讨论(0)
  • 2020-11-27 07:04

    Its not reading it because all assets in assets folder are compressed, try changing its extension to .mp3 then read it in, that should stop it from being compressed.

    0 讨论(0)
  • 2020-11-27 07:14

    Can you use something like

        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    0 讨论(0)
  • 2020-11-27 07:22
        InputStream is = getResources().getAssets().open("terms.txt");
        String textfile = convertStreamToString(is);
    
    public static String convertStreamToString(InputStream is)
                throws IOException {
                Writer writer = new StringWriter();
    
                char[] buffer = new char[2048];
                try {
                    Reader reader = new BufferedReader(new InputStreamReader(is,
                            "UTF-8"));
                    int n;
                    while ((n = reader.read(buffer)) != -1) {
                        writer.write(buffer, 0, n);
                    }
                } finally {
                    is.close();
                }
                String text = writer.toString();
                return text;
        }
    
    0 讨论(0)
  • 2020-11-27 07:23

    I found that if you are using an IDE like Eclipse you may need to do a clean -- or delete the API in the bin directory. It seems that the assets isn't getting updated when you do a build.

    0 讨论(0)
提交回复
热议问题