2015-06-04 46 views
0

我是编程android应用程序的新手。在android中创建文本文件并保存数据

在下面的代码中,我想通过一些EditTexts从用户获取输入,然后将它们保存到一个文件中。我使用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); 
     } 
    }); 
} 

} 
+0

为了简单起见,我试图采取仅从edittexts的一个输入 –

+0

是否声明在清单 –

+0

中写入外部存储权限,但是,我想将其存储在内部存储器中? –

回答

0

你需要的getText()的EditText领域,当你写入文件,如下图所示

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

+0

哎呀!我很抱歉。现在得到以下结果: 执行停止未恢复的活动:{com.example.cheruvu.rs/com.example.cheruvu.rs.user} java.lang.RuntimeException:执行停止未恢复的活动:{com.example.cheruvu.rs/com.example.cheruvu.rs.user} at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3396) at android.app.ActivityThread.handleStopActivity(ActivityThread.java: 3477) at ................. 如何处理这些异常? –

0
这个

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

File myFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "MyFileName"); 
FileOutpuStream fos = new FileOutputStream(myFile); 
+0

不工作:(我实际上在res目录中创建了该文件,然后添加了代码。现在,我按照你的说法尝试过了,但它仍然不起作用。 –

+0

而不是getAbsolutePath()尝试getAbsoluteFile() –

+0

你可以告诉我在哪里创建文件,因为我无法在res目录中找到它?反正,仍然没有得到输出:( –

0

尝试用这种替代你的代码,看看它是否

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); 
     } 
    }); 
} 

} 
+0

不工作....我疯了,不能够明白这个代码什么是错的,因为没有在我的代码中工作:( –

+0

你有没有尝试使用不同的模式?像'Context.MODE_PRIVATE'? –

+0

是的....它也不工作! –

相关问题