如何将文件下载到data/data/com.****.***文件夹并打开它



我需要将一些pdf文件下载到data/data.com中**.*文件夹。

这些文件是特定于应用程序的,只有应用程序才能读取并显示它,这就是存储在data/data.com上的原因**.*文件夹。

请让我知道如何下载到该文件夹并在应用程序中打开/阅读它。

我知道如何将其下载到SD卡,但我不知道下载到应用程序特定的文件夹。

请让我知道一些代码示例,我还需要知道data/data.com的容量/大小**.*文件夹。

只要你想编写自己的应用程序Data文件夹,你就可以创建一个像FileOutputStream out = new FileOutputStream("/data/data/com.**.*/somefile");这样的FileOutputStream,然后使用该输出流来保存文件。使用相同的方法,您可以创建一个FileInputStream,然后读取该文件。

如果您尝试访问另一个应用程序的数据文件夹,您将获得"拒绝权限"。

我不确定容量,但你可以使用这个计算数据文件夹的大小

File dataFolder = new File("/data/data/com.**.*/");
long size = folderSize(dataFolder);
...
public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length += file.length();
        else 
            lengthlong += folderSize(file);
    } 
    return length;
} 

写入文件

FileOutputStream out = new FileOutputStream("/data/data/your_package_name/file_name.xyz"); 

读取文件

FileInputStream fIn = new FileInputStream(new File("/data/data/your_package_name/file_name.xyz"));

现在您有了输入流,您可以根据文件类型在文件中转换它。我给你举个例子,如果你的文件包含String数据,我们可以做下面的事情,

 BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String mDataRow = "";
            String mBuffer = "";
            while ((mDataRow = myReader.readLine()) != null) {
                mBuffer += mDataRow + "n";
            }

记得向AndroidManifest.xml 添加写入文件权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

最新更新