2012-07-06 59 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