无法写入存储卡



我无法让我的应用程序写入存储卡。我试过几种不同的方法,但都不起作用。我在这里看到了几个帖子,都有同样的问题,问题没有解决。有人可以请看看我的代码,看看什么是错的?

我的舱单中有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

                       String inFileName = "/data/data/cpe495.smartapp/files/test.csv"; //TODO Use folder/filename
                          File inFile = new File(inFileName);
                          try{
                          FileInputStream fis = new FileInputStream(inFile);
                          String outFileName = Environment.getExternalStorageDirectory()+"/test.csv"; //TODO Use output filename
                          OutputStream output = new FileOutputStream(outFileName);
                          byte[] buffer = new byte[1024];
                          int length;
                          while ((length = fis.read(buffer))>0)
                            output.write(buffer, 0, length);
                          output.flush();
                          output.close();
                          fis.close();
                          } catch (Exception e) {
                              e.printStackTrace();
                          }   

04-06 00:17:14.961: WARN/System.err(279): java.io.FileNotFoundException: /mnt/sdcard/test.csv (Permission denied)
04-06 00:17:15.000: WARN/System.err(279):     at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
04-06 00:17:15.000: WARN/System.err(279):     at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
04-06 00:17:15.012: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
04-06 00:17:15.022: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:168)
04-06 00:17:15.032: WARN/System.err(279):     at java.io.FileOutputStream.<init>(FileOutputStream.java:147)
04-06 00:17:15.032: WARN/System.err(279):     at cpe495.smartapp.SmartApp$8.onClick(SmartApp.java:165)
04-06 00:17:15.041: WARN/System.err(279):     at android.view.View.performClick(View.java:2408)
04-06 00:17:15.051: WARN/System.err(279):     at android.view.View$PerformClick.run(View.java:8816)
04-06 00:17:15.062: WARN/System.err(279):     at android.os.Handler.handleCallback(Handler.java:587)
04-06 00:17:15.062: WARN/System.err(279):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-06 00:17:15.072: WARN/System.err(279):     at android.os.Looper.loop(Looper.java:123)
04-06 00:17:15.072: WARN/System.err(279):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-06 00:17:15.081: WARN/System.err(279):     at java.lang.reflect.Method.invokeNative(Native Method)
04-06 00:17:15.091: WARN/System.err(279):     at java.lang.reflect.Method.invoke(Method.java:521)
04-06 00:17:15.091: WARN/System.err(279):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-06 00:17:15.101: WARN/System.err(279):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-06 00:17:15.101: WARN/System.err(279):     at dalvik.system.NativeStart.main(Native Method)

这个问题的解决方案是在模拟器中添加一个sd卡。将sd卡添加到模拟器后,一切正常。

有一种方法可以做到这一点。

另一种方法是在eclipse中调出设备列表,然后创建一个新的虚拟设备。在设置虚拟设备的过程中,会出现一个带有选项的窗口,询问您是否需要一个存储卡以及需要多大的大小。这就是我如何做到的,我无法在网上找到一个教程。这是我在寻找选项时偶然发现的。

提前感谢!

相关内容

  • 没有找到相关文章

最新更新