使用大文件

小文件在几分之一秒内处理完毕,你可以读取/写入它们来代替你需要的代码。但是,如果文件较大或处理速度较慢,则可能需要在 Android 中使用 AsyncTask 在后台处理该文件:

    class FileOperation extends AsyncTask<String, Void, File> {

        @Override
        protected File doInBackground(String... params) {
          try {
            File file = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOCUMENTS), "bigAndComplexDocument.odf");
            FileOutputStream out = new FileOutputStream(file)

           ... (write the document)

            out.close()
            return file;
            } catch (IOException ex) {
               Log.e("Unable to write", ex);
               return null;
              }
        }

        @Override
        protected void onPostExecute(File result) {
          // This is called when we finish 
        }

        @Override
        protected void onPreExecute() {
           // This is called before we begin
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            // Unlikely required for this example
        }
    }
}

然后

new FileOperation().execute("Some parameters");    

这个 SO 问题包含有关如何创建和调用 AsyncTask 的完整示例。另请参阅有关如何处理 IOExceptions 和其他错误的错误处理问题