0

我正在尝试编辑设备上的现有文件-首先-使用选择器选择文件,该选择器检索文件的路径,如“mnt/sdcard/file.png”。然后我将它传递给阅读器以读取现有文件,然后通过移动每个字符的 Ascii 来修改它。然后再次覆盖它以替换旧的。

我已经在 PC 文件的桌面应用程序上测试了代码,它运行良好,但不能作为 Android 应用程序运行。它曾经在我的设备上工作过,但没有再次工作

关于我所做的:

1)在Mainafest文件中添加对External source Permission的写入2)选择文件权利并检索它的路径3)读取文件内容true

        File file = f;
        FileInputStream fin;
        fin = new FileInputStream(file);
        byte fileContent[] = new byte[(int)file.length()];
        fin.read(fileContent);

4)修改文件字节 5)在原始文件中写回(Overwrite)

        FileOutputStream fos = new FileOutputStream(f.getAbsolutePath());
        fos.write(enc_msg);
        fos.write((byte)seed);
        fin.close();
        fos.close();

6)再次将文件设置为null 7)在onClickListner中调用finish()

提前致谢

4

2 回答 2

1
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));

但是,设备必须从 USB 断开。否则,您需要拔下并重新插入设备才能看到更改。

于 2013-04-27T03:05:11.603 回答
0

经过大量工作,我通过以下方式达到了最终解决方案:

1)使用Common-io库 http://commons.apache.org/proper/commons-io/download_io.cgi

2) 仅在 import common-io 后编写此简单行

  FileUtils.writeByteArrayToFile(new File(file.getAbsolutePath()), myByteArray, false);

用于覆盖文件的最后一个属性 (Fasle) .. 附加标志

于 2013-04-27T06:48:38.847 回答