2012-03-18 4 views
0

Я написал приложение для Android, которое выводит текст и дату в файл на SD-карте.Когда я писал текст в файл, почему я не вижу текст при открытии файла?

public class MyWastedTimeActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     EditText ujET=(EditText)findViewById(R.id.input); 
     Button gomb=(Button)findViewById(R.id.button1); 
     final String ujString=ujET.getText().toString(); 
     gomb.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       try { 
        commitToFile(ujString); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 


    } 

private void commitToFile(String mit) throws IOException { 
    String aktIdo = DateFormat.getDateInstance().format(new Date()); 
    String kiIr =aktIdo+" "+mit+"\n"; 

    FileOutputStream fos = null; 
    ObjectOutputStream out = null; 


     File root = Environment.getExternalStorageDirectory(); 


     fos = new FileOutputStream( root + "/" +"idom.txt" ,true); 

     out = new ObjectOutputStream(fos); 
     out.writeObject(kiIr); 
     out.close(); 


    } 
} 

Проблема заключается в том, когда я открыть "idom.txt" -файл на моем компьютере это дает мне: Ԁt 䴎 牡 ㄠ ⰸ㈠ ㄰ '갊 í 琅 ฀ 慍 ⁲ 㠱 〲 ㈱ਠ, когда его действительно не то, что я написал ... Любое предложение?

+0

Попробуйте написать 'aktIdo' на консоль или файл журнала. Я уверен, что вы получаете не String ... – jmort253

ответ

0

Вы использовали ObjectOutputStream Класс. Метод writeObject используется для записи объекта в поток. Посмотрите на эту ссылку Document. Он будет писать в двоичном формате, который не является формой человека.

Предлагаю вам использовать PrintWriter Класс. PrintWriter - один из классов, основанных на символах. Вот хороший example.

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