2015-06-04 45 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

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

相關問題