2012-03-18 4 views
0

私は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(); 


    } 
} 

問題は、私は私のPC上で "idom.txt" -fileを開いたとき、それは私を与えている:Ԁt䴎牡ㄠⰸ㈠㄰「갊í琅฀慍⁲㠱〲​​㈱ਠその本当に私が書いたものではない...どんな提案?

+0

コンソールまたはログファイルに 'aktIdo'を書き込んでみてください。私はあなたが得ているものはStringではないと確信しています... – jmort253

答えて

0

ObjectOutputStreamクラスを使用しています。メソッドwriteObjectは、オブジェクトをストリームに書き込むために使用されます。この参照を参照してくださいDocument。それは人間の読みやすい形ではないバイナリ形式で書くつもりです。

私はあなたにPrintWriterクラスを使用することを提案します。 PrintWriterは、文字ベースのクラスの1つです。 ここに素敵なexampleがあります。

関連する問題