Skip to content Skip to sidebar Skip to footer

How To Write And Read Data Into The File Base On Different Language

Actually in my app i have an EditText box and an TextView. In this EditText box whatever i write is stored in the file. So when i open my app again the stored text is shown in the

Solution 1:

Updated code that solve the problem

public void writeNotesToFile(Context c)
{
    SharedPreferences preferencesWrite  = c.getSharedPreferences("myPreferences", 0);
    SharedPreferences.Editor editor  = preferencesWrite.edit(); 

    // write notes count into the  register
    editor.putInt("notesCount", m_noteCount);
    editor.commit();

    // write notes  to the  file
    SimpleDateFormat sdFormater = new SimpleDateFormat("dd-MMM-yyyy", Locale.US);
    File file = c.getFileStreamPath("Notes");

    if (m_noteCount > 0)
    {
        if(!file.exists())
        {
            try 
            {
                file.createNewFile();
            } 
            catch (Exception e) 
            {
                Log.i("ReadNWrite, fileCreate()", "Exception e = " + e);
            }
        }       
        try 
        {
                      //convert to UTF format while Writing Data
            FileOutputStream fos = new FileOutputStream(file);
            Writer writer = new OutputStreamWriter(fos, "UTF8");

               // FileOutputStream  writer = c.openFileOutput("Notes", Context.MODE_PRIVATE);

            for (int i = 0; i < m_noteCount; i++)
            {
                String noteDate = sdFormater.format(m_arrNoteDate[i]);
                writer.write(noteDate);
                writer.write(" ");
                writer.write(m_arrNoteString[i]);
                writer.write("~`");

            }
            writer.close();
        } 
        catch (Exception e) 
        {
            Log.i("ReadNWrite, fileCreate()", "Exception e = " + e);
        }
    }
    else
    {
        try 
        {
            file.createNewFile();
        } 
        catch (Exception e) 
        {
            Log.i("ReadNWrite, fileCreate()", "Exception e = " + e);
        }
    }

}

public void readNotesFromFile(Context c)
{       
    SharedPreferences preferencesRead = c.getSharedPreferences("myPreferences", 0);

    // Reads notes count from the  register
    m_noteCount = preferencesRead.getInt("notesCount", 0);

    // Reads notes from file
    String note = "";
    char nextCharacter;
    int count = 0, ch;
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.US);

    File file = c.getFileStreamPath("Notes");
    if (m_noteCount > 0)
    {
        if(file.exists())
        {
            try 
            {
                                  //convert to UTF format while Reading Data
                FileInputStream fis = new FileInputStream(file);
                InputStreamReader fin = new InputStreamReader(fis, "UTF8");

                // FileInputStream fin = c.openFileInput("Notes");

                while( (ch = fin.read()) != -1)
                {
                    nextCharacter = (char)ch;
                    if (nextCharacter == '~')
                    {
                        ch = fin.read();
                        nextCharacter = (char)ch;
                        if (nextCharacter == '`')
                        {
                            int i=note.indexOf(" ");
                            String temp = note.substring(0, i);
                            try
                            {
                                m_arrNoteDate[count] = formatter.parse(temp);
                            }
                            catch (Exception e)
                            {
                                // To handle dates saved before the file was written in Local.US format.
                                // This code can be removed after few releases and all user have migrated.                          
                                SimpleDateFormat defFormatter = new SimpleDateFormat("dd-MMM-yyyy");
                                m_arrNoteDate[count] = defFormatter.parse(temp);
                            }
                            m_arrNoteString[count] = note.substring(i + 1);
                            count++;
                            note = "";
                        }
                    }
                    else
                    {
                        note = note + nextCharacter;
                    }
                }
            } 
            catch (Exception e) 
            {
                Log.i("ReadNWrite, readFile()", "Exception e = " + e);

            }
        }
    }
}

Post a Comment for "How To Write And Read Data Into The File Base On Different Language"