Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android append text file

Tags:

I am tring to record the wake time and sleep time from a dialog picker to a text file like this, but the call to the method commitToFile2 doesn't append the text file "savedData.txt."

I know this code is very very dirty. I'm new to Java so any other suggestions would be greatly appreciated.

package com.buttinyourface; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;  import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.TimePickerDialog; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.TimePicker; import android.widget.AdapterView.OnItemClickListener;  public class SettingsActivity extends Activity {      public int wakeHour;     public int wakeMinute;     public int sleepHour;     public int sleepMinute;     public String sleepHourText = "No Data";     public String sleepMinuteText = "No Data";     public String outputTime = "No Data";     public String wakeHourText = "No Data";     private ListView lv;     Dialog newDialogBox;     Context appContext;     protected Context context;     static final private int WAKE_TIME = 0;     static final private int SLEEP_TIME = 1;      public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.settings);         final String[] settingsList = getResources().getStringArray(                 R.array.settingsStringArray);         lv = (ListView) findViewById(R.id.list);         TextView wakeHourTextView = (TextView) findViewById(R.id.TextView01);         lv.setOnItemClickListener(new OnItemClickListener() {              public void onItemClick(AdapterView<?> parent, View view,                     int position, long id) {                 int settingsPosition = position;                 if (settingsPosition == 0) {                     showDialog(WAKE_TIME);                     wakeHourText = Integer.toString(wakeHour);                 }                 if (settingsPosition == 1) {                     showDialog(SLEEP_TIME);                 }             }         });         lv.setAdapter(new ArrayAdapter<String>(this,                 android.R.layout.simple_list_item_1, settingsList));         wakeHourTextView.setText(outputTime);     }      public void onPrepareDialog(int id, Dialog dialog) {         switch (id) {         case WAKE_TIME:             break;         case SLEEP_TIME:             break;         }     }      @Override     public Dialog onCreateDialog(int id) {         switch (id) {         case WAKE_TIME:             return new TimePickerDialog(this, WakeTimeSetListener, wakeHour,                     wakeMinute, false);         case SLEEP_TIME:             return new TimePickerDialog(this, SleepTimeSetListener, sleepHour,                     sleepMinute, false);         }         return null;     }      private TimePickerDialog.OnTimeSetListener WakeTimeSetListener =                           new TimePickerDialog.OnTimeSetListener() {         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {             wakeHour = hourOfDay;             wakeMinute = minute;             String wakeHourText = Integer.toString(hourOfDay);             String wakeMinuteText = Integer.toString(minute);             String preftime = hourOfDay + ":" + minute;             SimpleDateFormat df = new SimpleDateFormat("HH:mm");             SimpleDateFormat dfOut = new SimpleDateFormat("hh:mma");             Date date = null;             try {                 date = df.parse(preftime);             } catch (ParseException e1) {                 // TODO Auto-generated catch block                 e1.printStackTrace();             }             String outputWakeTime = dfOut.format(date);             try {                 commitToFile(wakeHourText, wakeMinuteText, outputWakeTime);             } catch (IOException e) {                 // TODO Auto-generated catch block                 e.printStackTrace();             }         }     };     private TimePickerDialog.OnTimeSetListener SleepTimeSetListener =                           new TimePickerDialog.OnTimeSetListener() {         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {             sleepHour = hourOfDay;             sleepMinute = minute;             String sleepHourText = Integer.toString(hourOfDay);             String sleepMinuteText = Integer.toString(minute);             String preftime = hourOfDay + ":" + minute;             SimpleDateFormat df = new SimpleDateFormat("HH:mm");             SimpleDateFormat dfOut = new SimpleDateFormat("hh:mma");             Date date = null;             try {                 date = df.parse(preftime);             } catch (ParseException e1) {                 // TODO Auto-generated catch block                 e1.printStackTrace();             }             String sleepOutputTime = dfOut.format(date);             try {                 commitToFile2(sleepHourText, sleepMinuteText, sleepOutputTime);             } catch (IOException e) {                 // TODO Auto-generated catch block                 e.printStackTrace();             }         }     };      private void commitToFile(String wakeHourText, String wakeMinuteText,             String outputWakeTime) throws IOException {         final String entryString = new String("wakeHour=" + wakeHourText                 + ";wakeMinute=" + wakeMinuteText + ";wakeTime="                 + outputWakeTime + ";");         FileOutputStream fOut = openFileOutput("savedData.txt",                 MODE_WORLD_READABLE);         OutputStreamWriter osw = new OutputStreamWriter(fOut);         osw.write(entryString);         osw.flush();         osw.close();     }      private void commitToFile2(String sleepHourText, String sleepMinuteText,             String sleepOutputTime) throws IOException {         final String entryString = new String("sleepHour=" + sleepHourText                 + ";sleepMinute=" + sleepMinuteText + ";sleepTime="                 + sleepOutputTime + ";");         FileOutputStream fOut = openFileOutput("savedData.txt",                 MODE_WORLD_READABLE);         OutputStreamWriter osw = new OutputStreamWriter(fOut);         osw.write(entryString);         osw.flush();         osw.close();     } } 
like image 372
dell116 Avatar asked Dec 27 '10 22:12

dell116


People also ask

How do I append text in Android?

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. In the above code, we have taken editext, button and textview. When user click on button after inserting value in edittext,it will append the data using string writer.

What is append in Android?

append(CharSequence csq, int start, int end) Appends a subsequence of the specified character sequence to this Appendable . abstract Appendable. append(CharSequence csq) Appends the specified character sequence to this Appendable .


1 Answers

I figured it out....I had to change the line

FileOutputStream fOut = openFileOutput("savedData.txt", MODE_WORLD_READABLE); 

to

FileOutputStream fOut = openFileOutput("savedData.txt",  MODE_APPEND); 

After that I was able to append the text file without overwriting the data that was already inside the text file. Thanks for your assistance guys. I guess going to the 4th page on google IS useful sometimes.

like image 113
dell116 Avatar answered Sep 23 '22 17:09

dell116