微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何向运行时创建的文件而不是从互联网发出下载请求?

如何解决如何向运行时创建的文件而不是从互联网发出下载请求?

我正在从运行时从api接收的一些json数据中创建一个.csv文件,并将此文件存储在本地的android设备中。但是我想对同一文件进行下载请求。这样就可以让人感觉自己只是从互联网上下载了文件。 (我删除了原来的一个。)

我想要的是-看起来下载通常已正常进行,而实际上是在运行时中创建文件,而不是通过某些url下载文件。另外,必须删除原始文件-这样同一文件就不会在两个地方存在。原始副本应存储在认的下载文件夹中。

我曾尝试使用Download Manager进行相同操作,并且还授予了所有必要的权限,但是它仍然会提供java.lang.SecurityException: Unsupported path /storage/emulated/0/myFolder例外。

以下是我的代码-

JSONObject obj = new JSONObject();
        JSONArray arr = new JSONArray();
        try {
            for (int i = 0; i < apiData.size(); i++) {
                apiMainClass p = apiData.get(i);

                obj.put("job_title",p.getJobTitle());
                obj.put("name",p..getUserFullname());
                obj.put("email",p.getEmail());
                obj.put("phone",p.getPhone());
                obj.put("applied_time",p.getCreatedAt());

                arr.put(obj);

                obj = new JSONObject();
            }
            Log.e("testing -- ",arr.toString()); //gives right json array as needed

            String csv = CDL.toString(arr); // used org.json.CDL to convert json array to csv string

            String outputPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myFolder";
            File dir = new File(outputPath);
            dir.mkdirs();

            File file = new File(outputPath,"data.csv");
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(csv.getBytes()); // data.csv files get successfully created
            fos.close();

            Uri uri = Uri.parse(file.toString());
            DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
            manager.addCompletedDownload("TestTitle","TestBody",true,"text/csv",outputPath,file.length(),true);
        }
        catch (Exception e){
            e.printstacktrace();
        }

注意:apiData是从改型接收的数据 我还没有使用DownloadManager.Request和manager.enqueue(request)是bcoz,它给出了关于uri的例外(uri必须直接指向HTTPS,HTTP等) 我是android开发的新手,请帮助并提前感谢所有人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。