我需要将一些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" />