在android中创建文本文件并保存数据

在android中创建文本文件并保存数据,android,file,Android,File,我对android应用程序编程还不熟悉 在下面的代码中,我想通过一些EditText从用户那里获取输入,然后将它们保存到一个文件中。我使用android studio,在输入之后,我检查了文件,它总是空的。我试图显示内容,但仍然没有得到任何输出。代码有什么问题 请帮帮我 public class user extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onC

我对android应用程序编程还不熟悉

在下面的代码中,我想通过一些EditText从用户那里获取输入,然后将它们保存到一个文件中。我使用android studio,在输入之后,我检查了文件,它总是空的。我试图显示内容,但仍然没有得到任何输出。代码有什么问题

请帮帮我

public class user extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user);

    nextClick();
}

public void nextClick()
{
    final Context context = this;
    Button next =(Button) findViewById(R.id.userNext);
    next.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           try {
               EditText e1 = (EditText) findViewById(R.id.name);
               EditText e2 = (EditText) findViewById(R.id.designation);
               EditText e3 = (EditText) findViewById(R.id.orgname);
               EditText e4 = (EditText) findViewById(R.id.address);
               EditText e5 = (EditText) findViewById(R.id.city);
               EditText e6 = (EditText) findViewById(R.id.state);
               EditText e7 = (EditText) findViewById(R.id.zip);
               FileOutputStream fos = openFileOutput("data.txt", Context.MODE_WORLD_WRITEABLE);
               OutputStreamWriter osw = new OutputStreamWriter(fos);

               osw.write(e1.toString());

               fos.flush();
               fos.close();
           }
           catch(Exception e) {
           }
            try
                  {
              FileInputStream fis = new FileInputStream("data.txt");

               while(fis.read()!=-1)
               {
                   System.out.println((char)fis.read());
               }

           }
           catch(Exception e)
           {

           }
           Intent intent3 = new Intent(context,com.example.cheruvu.rs.user2.class);
           startActivity(intent3);
       }
   });
}

}

写入文件时,需要从EditText字段getText(),如下所示


osw.write(e1.getText().toString())

这个怎么办。这将在手机上创建文件(不是SD卡)


试着用这个替换你的代码,看看它是否有效

public class user extends Activity {

EditText e1;
EditText e2;
EditText e3;
EditText e4;
EditText e5;
EditText e6; 
EditText e7; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user);

    e1 = (EditText) findViewById(R.id.name);
    e2 = (EditText) findViewById(R.id.designation);
    e3 = (EditText) findViewById(R.id.orgname);
    e4 = (EditText) findViewById(R.id.address);
    e5 = (EditText) findViewById(R.id.city);
    e6 = (EditText) findViewById(R.id.state);
    e7 = (EditText) findViewById(R.id.zip);

    nextClick();
}

public void nextClick()
{
    final Context context = this;
    Button next =(Button) findViewById(R.id.userNext);
    next.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           try {

               FileOutputStream fos = openFileOutput("data.txt", Context.MODE_WORLD_WRITEABLE);
               OutputStreamWriter osw = new OutputStreamWriter(fos);

               osw.write(e1.getText().toString());

               fos.flush();
               fos.close();
           }
           catch(Exception e) {
           }
            try
                  {
              FileInputStream fis = new FileInputStream("data.txt");

               while(fis.read()!=-1)
               {
                   System.out.println((char)fis.read());
               }

           }
           catch(Exception e)
           {

           }
           Intent intent3 = new Intent(context,com.example.cheruvu.rs.user2.class);
           startActivity(intent3);
       }
   });
}

}

为简单起见,我试图仅从您在清单中声明的写入外部存储权限的一个edittextshave中获取输入,但我想将其存储在内存中?仍然无法工作:(
catch(Exception e){}
don't do that.oops!很抱歉。我现在包括了这一点,并得到以下信息:正在停止未恢复的活动:{com.example.cheruvu.rs/com.example.cheruvu.rs.user}java.lang.RuntimeException:正在停止未恢复的活动:{com.example.cheruvu.rs/com.example.cheruvu.rs.user}位于android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3396)位于android.app.ActivityThread.HandleTopActivity(ActivityThread.java:3477)位于……….如何处理这些异常?不起作用:(实际上,我在res目录中创建了文件,然后添加了代码。现在,我按照您所说的那样尝试了,但仍然不起作用。请尝试getAbsolutePath()而不是getAbsoluteFile(),因为我在res目录中找不到该文件,您能告诉我该文件是在哪里创建的吗?无论如何,仍然没有得到输出:(它是在您手机的根文件夹中创建的。My Files->All Files->Device storageok,因此无法访问该文件?但我希望完全访问该文件,以便以后可以从该文件中导出数据。我可以这样做吗?不工作……我快发疯了,无法理解该代码的错误,因为我的代码中没有任何内容:(您是否尝试使用其他模式?如
上下文.mode\u PRIVATE
public class user extends Activity {

EditText e1;
EditText e2;
EditText e3;
EditText e4;
EditText e5;
EditText e6; 
EditText e7; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user);

    e1 = (EditText) findViewById(R.id.name);
    e2 = (EditText) findViewById(R.id.designation);
    e3 = (EditText) findViewById(R.id.orgname);
    e4 = (EditText) findViewById(R.id.address);
    e5 = (EditText) findViewById(R.id.city);
    e6 = (EditText) findViewById(R.id.state);
    e7 = (EditText) findViewById(R.id.zip);

    nextClick();
}

public void nextClick()
{
    final Context context = this;
    Button next =(Button) findViewById(R.id.userNext);
    next.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           try {

               FileOutputStream fos = openFileOutput("data.txt", Context.MODE_WORLD_WRITEABLE);
               OutputStreamWriter osw = new OutputStreamWriter(fos);

               osw.write(e1.getText().toString());

               fos.flush();
               fos.close();
           }
           catch(Exception e) {
           }
            try
                  {
              FileInputStream fis = new FileInputStream("data.txt");

               while(fis.read()!=-1)
               {
                   System.out.println((char)fis.read());
               }

           }
           catch(Exception e)
           {

           }
           Intent intent3 = new Intent(context,com.example.cheruvu.rs.user2.class);
           startActivity(intent3);
       }
   });
}

}