2.在代码全部正确的时候,却无法将文件存入SD卡的特囧事件
2014-01-07 12:45
197 查看
妈蛋啊,真的是很恶心啊!!!实习生写了个练手的程序,但是怎么也不能保存文件,我为了这个问题纠结了快10多天啊!!!!!!!!!!!!!!!!!!!!!!!
我必须要写出来吐槽一下!!!!!
SD卡是什么东西,你肯定知道的,对不对,我就不解释了~~~~
写了一个程序,很简单,就是创建一个文件,将一些内容存储到SK卡之中。
首先要申请权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在存入手机之中和存入SD卡之中的写入方法是有区别的
存入手机之中
存入SD卡之中
在调用这个方法的时候,要优先判断SD卡是否写保护了,以及是否存在
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
一切都很正常对不对?没有发现什么错误对不对?但是为什呢在存储的时候就是存储不进去呢!?!?!?!?!?!我一直纠结了40多分钟!!!!!!
最后我发现,在创建AVD的时候没有创建SD卡区域。我日啊!!!!!!
我必须要写出来吐槽一下!!!!!
SD卡是什么东西,你肯定知道的,对不对,我就不解释了~~~~
写了一个程序,很简单,就是创建一个文件,将一些内容存储到SK卡之中。
首先要申请权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在存入手机之中和存入SD卡之中的写入方法是有区别的
存入手机之中
public void save(String filename, String content) throws Exception { FileOutputStream outStream = context.openFileOutput(filename, context.MODE_PRIVATE); outStream.write(content.getBytes()); outStream.close(); }
存入SD卡之中
public void saveToSdCard(String filename, String content) throws Exception{ File file = new File(Environment.getExternalStorageDirectory(),filename); String sdpath = Environment.getExternalStorageDirectory().toString(); Log.i("sdsdsdsd", sdpath); FileOutputStream outStream = new FileOutputStream(file); outStream.write(content.getBytes()); outStream.close(); }
File file = new File(Environment.getExternalStorageDirectory(),filename);中的Environment.getExternalStorageDirectory(),这个因为每个版本的安卓SD卡存储位置不同,所以不能直接写定,从而用这个方法。为了方便的找到写入的文件位置,所以用Log.i(,)输出了存储的位置。
在调用这个方法的时候,要优先判断SD卡是否写保护了,以及是否存在
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
一切都很正常对不对?没有发现什么错误对不对?但是为什呢在存储的时候就是存储不进去呢!?!?!?!?!?!我一直纠结了40多分钟!!!!!!
最后我发现,在创建AVD的时候没有创建SD卡区域。我日啊!!!!!!
相关文章推荐
- Windows 无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能未正确签名或已损坏,或者可能是来自未知来源的恶意软件。 (代码 52)
- IDEA 13、14 配合 gradle 时候无法正确编译资源文件的 bug
- VS2008添加事件的时候,出现“无法执行添加/移除操作,因为代码元素“CXXXDlg”是只读的
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- SQL SERVER 2008复制--代理消息代码 21100。 分发代理无法在“C:\Program Files\Microsoft SQL Server\100\COM”目录中创建临时文件。系统返回的错误代码为 5。
- Silverligth项目加载问题 无法读取项目文件“SL1201.csproj”。请确认 声明中的路径正确,且磁盘上存在该文件。
- Android4.4平台下MediaProvider无法向外置SD卡中的文件写数据
- java 语法没有错,但是无法加载进去,一开始没有错的时候就要查看自己的一些String或者有引号“”的代码
- React Native 文件“launchPackager.command”无法执行,因为您没有正确的访问权限。
- 我没装Oracle,下面的连接代码无法测试.如果正确的话,请回贴告之.
- wince 部署到扫描枪的时候提示:无法启动程序%csidl_program_files%\系统找不到指定的文件
- 解决使用Maven,代码正确却发生大量类文件cannot be resolved to a type的情况
- Android4.0 SD卡无法删除文件solution与Androidmanifest.xml解析流程
- 编译ASP.NET时,提示“请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。
- 关于自定义View添加到layout文件和ScrollView中无法捕捉onFling事件 3ff8
- winrar 压缩文件的时候提示 无法打开\Temp\Rar$LS12.11578 系统找不到指定的路径
- MS DTC 无法正确处理 DC 升级/降级事件的解决
- 投票系统[单/复选,投票数量/项随意][C#/SQL/文件包括数据库代码全部在]
- linux QT因修改系统时间或迁移项目后,重新编译提示某某文件修改时间大于当前时间,或新修改的代码不能正确编译。
- Qt 自定义model实现文件系统的文件名排序(重定义sort函数即可。忽然开窍了:其实捕捉点击Header事件,内部重排序,全部刷新显示即可)