我想創建一個應用程序,用戶選擇一些複選框,然後當它們提交時創建一個.txt文件,併爲每個選中的複選框添加一個句子。Android應用程序來創建.txt文件
我已經有一個成功的版本,它創建了正確的文件,但我需要它保存到一個可訪問的文件位置,以便它可以連接到電子郵件。只要可以訪問,我並不在乎它保存在哪裏。
以下代碼在Android虛擬設備和我的Galaxy 2中運行時會導致崩潰。該應用程序是以後應用程序的概念證明。謝謝。
@Override
public void onClick(View v)
{
String nochartOutput = " ";
if (sitting.isChecked())
nochartOutput += "The patient was sitting in a chair. ";
if (breathing.isChecked())
nochartOutput += "The patient was breathing. ";
if (alert.isChecked())
nochartOutput += "The patient was alert. ";
FileOutputStream fOut = null;
File sdDir = Environment.getExternalStorageDirectory();
try {
fOut = openFileOutput(sdDir + "/AutoWriter/samplefile.txt",MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
OutputStreamWriter osw = new OutputStreamWriter(fOut);
try {
osw.write(nochartOutput);
osw.flush();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
03-04 18:39:53.604:W/dalvikvm(10453):線程ID = 1:螺紋與未捕獲的異常(組= 0x40c211f8)
03-04 18時39分離開: 53.624:E/AndroidRuntime(10453):致命例外:主
03-04 18:39:53.624:E/AndroidRuntime(10453):java.lang.IllegalArgumentException:文件/mnt/sdcard/samplefile.txt包含路徑分隔符
03-04 18:39:53.624:E/AndroidRuntime(10453):at andr oid.app.ContextImpl.makeFilename(ContextImpl.java:1703)
03-04 18:39:53.624:E/AndroidRuntime(10453):在android.app.ContextImpl.openFileOutput(ContextImpl.java:723)
03-04 18:39:53.624:E/AndroidRuntime(10453):在android.content.ContextWrapper.openFileOutput(ContextWrapper.java:165)
03-04 18:39:53.624:E/AndroidRuntime (10453):at com.example.com.dresdor.autowriter.MainActivity $ 1.onClick(MainActivity.java:48)
03-04 18:39:53.624:E/AndroidRuntime(10453):at android.view .View.performClick(View.java:3620)
03-04 18:39:53.624:E/AndroidRuntime(10453):在android.view.View $ PerformClick.run(View.java:14292)
03-04 18:39:53.624: E/AndroidRuntime(10453):at android.os.Handler.handleCallback(Handler.java:605)
03-04 18:39:53.624:E/AndroidRuntime(10453):at android.os.Handler.dispatchMessage (Handler.java:92)
03-04 18:39:53.624:E/AndroidRuntime(10453):在android.os.Looper.loop(Looper.java:137)
一月3日至4日8:39:53.624:E/AndroidRuntime(10453):at android.app.ActivityThread.main(ActivityThread.java:4507)
03-04 18:39:53.624:E/AndroidRuntime(10453):at java .lang.reflect.Method.invokeNative(Native Method)
03-04 18:39:53.624:E/AndroidRuntime(10453):at java.lang.reflect.Method.invoke(Method.java:511)
03-04 18:39:53.624:E/AndroidRuntime(10453):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:790)
03-04 18點39分:53.624:E/AndroidRuntime(10453):在com.android.internal.os.ZygoteInit.main (ZygoteInit。的java:557)
03-04 18:39:53.624:E/AndroidRuntime(10453):在dalvik.system.NativeStart.main(本機方法)
你可以在logcat中添加錯誤嗎? – NaviRamyle 2013-03-05 02:30:29