Search code examples
androidassetsfilewriterasset-managementdata-files

How to save a non txt file in data/files folder in android


A way to save a non text file to /data/files folder. If file resource is from assets folder.


Solution

  • this should do it.

    private void writeToSDCard() {
        try {
            File root = Environment.getExternalStorageDirectory();
    
            if (root.canWrite()){
                InputStream from = myContext.getResources().openRawResource(rID);
                File dir = new java.io.File (root, "pdf");
                dir.mkdir();
                File writeTo = new File(root, "pdf/" + attachmentName);
                FileOutputStream  to = new FileOutputStream(writeTo);
    
                byte[] buffer = new byte[4096];
                int bytesRead;
    
                while ((bytesRead = from.read(buffer)) != -1)
                    to.write(buffer, 0, bytesRead); // write
                to.close();             
                from.close();
            } else {
                Log.d(TAG, "Unable to access SD card.");
            }
        } catch (Exception e) {
            Log.d(TAG, "writeToSDCard: " + e.getMessage());
        }
    }       
    }