合并文件需要很长时间

时间:2015-06-17 07:25:24

标签: android android-file r.java-file

在我的应用程序中,我实现了一个下载管理器,它使用多重连接下载文件并将内容保存在临时文件中,最后在下载完成时将这些文件合并到一个文件中。
我的问题是最后一步(合并文件)需要太长时间才能完成甚至超过下载文件(例如,在5秒内下载250 Kb并在大约10 - 15秒内合并的文件)。 我正在使用此方法合并临时文件:

private void mergeAndActivate() {
    new AsyncTask<Void, Integer, Void>() {
        @Override
        protected void onPreExecute() {
            // only toast a message
        }

        @Override
        protected Void doInBackground(Void... params) {
            long leninfile=0, leng=0;
            int count=0, data=0;
            try {
                String filePath =download.getFile().getPath();
                File filename = new File(filePath);
                RandomAccessFile outfile = new RandomAccessFile(filename,"rw");
                while(true) {
                    filename = getTempFile(count);
                    if (filename.exists()) {
                        RandomAccessFile infile = new RandomAccessFile(filename,"r");
                        data=infile.read();
                        while(data != -1) {
                            outfile.write(data);
                            data=infile.read();
                        }
                        leng++;
                        infile.close();
                        count++;
                    } else break;
                }
                outfile.close();
            } catch(Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            deleteTempFiles();

            // Toast a mesage

        }



    }.execute();
}

0 个答案:

没有答案