android:如何在android-2.3.7下创建文件?

时间:2014-09-05 10:39:15

标签: java android file

我无法在任何地方找到如何在android 2.3.7(Cyanogenmod)中正确创建新文件。

普通代码不起作用,抛出IOException或FileNotFoundException:

String path = Environment.getExternalStorageDirectory().getPath() + "/gpx/";
//There is a gpx folder in my sdcard, the app can read those files but can't create a new one.

File file = new File(path, filename);
//if i insert file.createNewFile(); the app throws "IOException: Invalid argument" but does not crash.
FileOutputStream fos = new FileOutputStream(file);
String data = "somedata";
fos.write(data.getBytes());
fos.close();

输出流是公开的。当服务停止时,最终数据由onDestroy()中的另一个methond写入。这会在fos.write(endtag.getbytes())行中崩溃该方法中的应用程序;错误是NullPointerException。

据我所知,由于未能创建文件,以前的代码不会创建文件输出流。如果有人知道,什么是“IOException:无效的参数”。什么是无效的论点?我想我不明白某个地方可能存在的问题?在该版本的android中创建文件时是否需要一些额外的参数?在Android 4. +它工作正常。

任何人都可以提供一些基本的例子,说明如何在旧版本的android中的sdcard上创建文件或解释IOException中的“无效参数”是什么?

1 个答案:

答案 0 :(得分:0)

最后我发现了什么问题。在这个问题中,我忘了提到,使用的文件名是格式"yyyy-mm-dd HH:mm:ss"的日期,所以问题是":"我建议的符号在android 2.3.7中不允许使用文件名。

简单地将格式修改为"yyyy-mm-dd HH-mm-ss"解决了这样一个痛苦的问题。

相关问题