Android模拟器中的问题写入文件问题

我正在尝试使用以下代码将一些简单数据写入到外部存储中。 我在这里错过了一些东西,但不知道是什么。 谢谢

RobD

公共类TimeCard延伸活动{/ **首次创建活动时调用。 * / @Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); 的setContentView(R.layout.main);

    final Button button = (Button) findViewById(R.id.Button01);
    final EditText edittext = (EditText) findViewById(R.id.EditText01);
    final EditText edittext1 = (EditText)findViewById(R.id.EditText02);
    final EditText edittext2 = (EditText)findViewById(R.id.EditText03);
    final EditText edittext3 = (EditText)findViewById(R.id.EditText04);
    final String inputString = edittext + "/n" + edittext1 + "/n"+  edittext2 + "/n" + edittext3;
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {               
          //Do it
          CreateFile(inputString);
          //Let them know it
          Toast.makeText(TimeCard.this, "You are Clocked In", Toast.LENGTH_LONG).show();
        }


    });
}
//Write to SD Card

public void CreateFile(String InputString){

 File SDCard = Environment.getExternalStorageDirectory();  
 String FILENAME = SDCard + "/time_card.txt";

    FileOutputStream fos = null;
    try {
        fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
    } catch (FileNotFoundException e) {

        e.printStackTrace();
    }
    try {
        fos.write(InputString.getBytes());
    } catch (IOException e) {

        e.printStackTrace();
    }
    try {
        fos.close();
    } catch (IOException e) {

        e.printStackTrace();
    }
    }

}


我试着运行你的代码,错误是由你使用openFileOutput(String name, int mode)方法引起的。 看看里面的LogCat,我可以看到以下异常:

java.lang.IllegalArgumentException: File /mnt/sdcard/time_card.txt contains a path separator

这指出了我对这个问题的答案的方向,这也可能解决你的问题:

Context.openFileOutput旨在用于创建私有应用程序的文件。 他们进入你的应用的私人数据目录。 你提供一个名字,而不是路径

openFileOutput的文档也指出了关于函数的name参数的这一点:

要打开的文件的名称; 不能包含路径分隔符。

对于将来的参考,当您遇到类似问题时,学习如何使用可用的工具(如LogCat)是非常重要的。 没有他们,你很难弄清楚什么是错的。 所以我建议读一下如何做到这一点。


当你不显示你得到什么样的错误信息时,很难判断。 但我的第一个猜测是,你忘记了在你的AndroidManifest.xml文件中包含WRITE_EXTERNAL_STORAGE权限。

链接地址: http://www.djcxy.com/p/29519.html

上一篇: Problem Writing Files problem in Android Emulator

下一篇: How can I send emails from my Android application?