我需要将一些pdf文件下载到data / data / com。 **。* 文件夹中。
这些文件是特定于应用程序的,只有应用程序才能读取并显示存储在data / data / com。 **。* 文件夹中的原因。
请让我知道如何下载到该文件夹并在应用程序中打开/阅读它。
我知道如何将其下载到SD卡中,但我无意下载到特定应用程序文件夹。
请让我知道一些代码示例,我还需要知道数据/ data / com的容量/大小。 **。* 文件夹。
答案 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" />