java - android复制文件显示错误

标签 java android file

它显示 07-07 16:34:48.270: W/System.err(6050): 复制 java.io.IOException 我已经给予许可了

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

文件复制代码:

  File file = new File("/mnt/sdcard/infobooks/");

            if (file.exists() == false) {
                file.mkdirs();
            }

            InputStream myInput = this.getAssets().open("Book4.pdf");
            String outFileName = Environment.getExternalStorageDirectory()+"/infobooks/Book4.pdf";
            File file2=new File(outFileName);
            file2.createNewFile();

            FileOutputStream myOutput = new FileOutputStream(outFileName);

            // transfer bytes from the inputfile to the outputfile
            byte[] buffer = new byte[1024];
            int length;
            while ((length = myInput.read(buffer)) > 0) {
                myOutput.write(buffer, 0, length);
            }

            // Close the streams
            myOutput.flush();
            myOutput.close();
            myInput.close();

最佳答案

从声音来看,您的错误与写入外部存储无关,而是与从 Assets 中读取有关。文件“Book4.pdf”是否存在于 Assets 目录中?它有多大?您运行的是哪个版本的 Android?曾经有一段时间,Android 在使用压缩时对资源中的文件大小有限制。在 Android 2.3 之前,AssetManager 无法读取大的压缩文件(大意味着未压缩状态下超过 1MB)。解决这个问题的方法是不压缩文件(通过为其提供一个 aapt 跳过压缩的扩展名,例如 jpg 或 png),进入命令行构建,或者将文件分割成更小的 block ,然后在设备上重新构建它们。

但是,如果没有完整的堆栈跟踪,我们无法真正知道错误的原因是什么。

关于java - android复制文件显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374481/

相关文章:

OSGi 包中的 JavaFX 样式表

java - 在 java servlet 上出现错误 405

android - 查找 R 的引用名称的值

android - 在 Android 上实现消息访问配置文件(接收器端)?

android - 在ListView的每一行与TextView进行交互

c - 如何用 C 语言读取文件的特定部分?

html - zlib 压缩的 html 页面的文件扩展名?

java 进行备份,无需任何存储

java - Tomcat强制关闭可以通过异常类型的catch block 捕获吗

java - 寻求有关布局选项的建议