2014-03-29 51 views

回答

2

此代码片段将在文本更改时将文本复制到字符串中,并调用函数以写入应用程序的私有文件目录。

String YourTextString;  
    YourTextField.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) { 
       YourTextString = YourTextField.getText().toString(); 
       writeToFile(YourTextString); 
      } 
      @Override 
      public void afterTextChanged(Editable s) {  
      } 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count,int after) {   
      } 
     }); 
public void writeToFile(String data) { 
    try { 
     OutputStreamWriter MyOutputStreamWriter = new OutputStreamWriter(mContext.openFileOutput("YourFileName.txt", Context.MODE_PRIVATE)); 
     MyOutputStreamWriter.append(data); 
     MyOutputStreamWriter.close(); 
    } 
    catch (IOException e) { 
     Log.e("Exception", "File write failed: " + e.toString()); 
    } 
} 

编辑: 如果你想从文件中读取,你可以使用此功能(如果path参数为空,代码将读取的私人文件目录中的文件,如果你给它它会读取你指定的文件):

public String readFromFile(String path) { 
    String ret = ""; 
    if(path==""){ 
     try { 
      InputStream inputStream = mContext.openFileInput(FileName); 

      if (inputStream != null) { 
       InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
       String receiveString = ""; 
       StringBuilder stringBuilder = new StringBuilder(); 

       while ((receiveString = bufferedReader.readLine()) != null) { 
        stringBuilder.append(receiveString).append("\n"); 
       } 

       inputStream.close(); 
       ret = stringBuilder.toString(); 
      } 
     } 
     catch (FileNotFoundException e) { 
      Log.e("login activity", "File not found: " + e.toString()); 
     } catch (IOException e) { 
      Log.e("login activity", "Can not read file: " + e.toString()); 
     } 
    } 
    else 
    { 
     File file = new File(path); 
     String receiveString = ""; 
     StringBuilder stringBuilder = new StringBuilder(); 
     try { 
      BufferedReader buf = new BufferedReader(new FileReader(file)); 
      while ((receiveString = buf.readLine()) != null) { 
       stringBuilder.append(receiveString).append("\n"); 
      } 
      buf.close(); 
      ret = stringBuilder.toString(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return ret; 
} 
相关问题