2012-07-06 133 views
0

示例代碼將EditText/TextView轉換爲字符串?

EditText txtData = (EditText) findViewById(R.id.txtData); 
Button btnReadSDFile = (Button) findViewById(R.id.btnReadSDFile); 
btnReadSDFile.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     // write on SD card file data in the text box 
     try { 
      //Read a file from SDCard to TextBox(EditText) 
      File myFile = new File("/mnt/sdcard/config_data.med"); 
      FileInputStream fIn = new FileInputStream(myFile); 
      BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)); 
      String aDataRow = ""; 
      String aBuffer = ""; 
      while ((aDataRow = myReader.readLine()) != null) { 
       aBuffer += aDataRow + "\n"; 
      } 
      txtData.setText(aBuffer); 
      myReader.close(); 
      String s = txtData.getText().toString(); 
      Log.e("txtData",s); 
     }catch (Exception e) { 
      Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

我們原來的文件內容

Welcome 
To 
All 

我們的日誌結果截圖

enter image description here

爲什麼我們的內容崩潰嗎?我們如何解決它?

+0

但你已經得到aBuffer值作爲字符串比你爲什麼要設置成的EditText,再次試圖從edittext.Try得到相同的值打印一個緩衝區進入日誌,看看會發生什麼? – AkashG 2012-07-06 10:18:15

+0

好問題。我嘗試沒有'EditText'和使用'字符串'並且我也得到了相同的答案。 – Sekar 2012-07-06 10:23:28

回答

2

這應該是一個編碼問題。試試這個:

FileInputStream fIn = new FileInputStream(myFile); 
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn, "UTF-8")); 

參考不同的編碼字符集 Encoding Charset

+0

我得到一個錯誤消息'構造函數FileInputStream(File,String)是undefined' – Sekar 2012-07-06 10:07:55

+0

我編輯我的答案。有一個寫錯誤。對不起!該字符串傳遞給InputStreamReader構造函數,而不傳遞給FileInputStrem構造函數。 – 2012-07-06 10:22:46

+0

謝謝。這是一個編碼問題。 – Sekar 2012-07-06 10:26:15