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

时间:2014-05-19 04:53:48

标签: android

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

只要您想编写自己的应用程序数据文件夹,就可以创建像此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;
} 

答案 1 :(得分:0)

您好,我附上了解释教程的链接。

http://www.mysamplecode.com/2012/06/android-internal-external-storage.html

并且互联网上有很多讨论你应该根据你的手机来访问数据/数据文件夹中的数据,我还附上一些关于讨论的链接,我希望这些也是一些链接。与您的问题相关

where do i find app data in android

How to access data/data folder in Android device?

以及一些链接可以在不使用手机的情况下制作出来的东西 您可以访问/data/data/com*.*而无需根设备

http://denniskubes.com/2012/09/25/read-android-data-folder-without-rooting/

答案 2 :(得分:0)

  

写文件

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" />