2015-06-04 2 views
0

Я новичок в программировании приложений для Android.создание текстового файла и сохранение данных в android

В следующем коде я хочу взять данные от пользователя через несколько EditTexts, а затем сохранить их в файл. Я использую студию android и после ввода входов, я проверил файл, и он всегда пуст. Я пытаюсь отобразить содержимое и не получаю никакого вывода. Что не так с кодом?

Пожалуйста, помогите мне.

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

oops! Извините. теперь и получил следующее: Выполнение остановки активности, которая не возобновляется: {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

что по этому поводу. Это создаст файл на телефоне (не SDcard)

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

да .... Он тоже не работает! –

Смежные вопросы