2014-01-16 3 views
0

SD 카드의 텍스트에 파일을 저장하고 싶습니다. 일부 자습서를 따른 후에 필자는 사용해야하는 코딩에 대한 참조를 얻습니다. 하지만 실행 한 후에는 "저장된 파일이 실패했습니다"라는 메시지가 나타납니다. 코딩에 문제가 있습니까? 파일을 activity의 textview에서 저장하려고합니다.텍스트 파일을 SD 카드에 저장하십시오.

또한

public class PreposisiRemoval extends Activity implements OnClickListener{ 
Button button; 
Button buttonsave; 
TextView tv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_preposisi_removal); 

    Intent intent = getIntent(); 
    String result = intent.getStringExtra("resultFilter"); 

    tv = (TextView) findViewById(R.id.textView8); 
    tv.setMovementMethod(new ScrollingMovementMethod()); 
    tv.setText(result); 
    tv.setTextSize(14); 

    buttonsave = (Button) findViewById(R.id.button8); 
    buttonsave.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      boolean mExternalStorageAvailable = false; 
      boolean mExternalStorageWriteable = false; 
      String state = Environment.getExternalStorageState(); 

      if (Environment.MEDIA_MOUNTED.equals(state)) { 

       mExternalStorageAvailable = mExternalStorageWriteable = true; 
      } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 

       mExternalStorageAvailable = true; 
       mExternalStorageWriteable = false; 
      } else { 

       mExternalStorageAvailable = mExternalStorageWriteable = false; 
      } 

      try { 
       File myFile = new File("/sdcard/documents/PreposisiRemoval.txt"); 
       myFile.createNewFile(); 
       FileOutputStream FOut = new FileOutputStream(myFile); 
       OutputStreamWriter myOutWriter = 
         new OutputStreamWriter(FOut); 
         myOutWriter.append(tv.getText()); 
         myOutWriter.close(); 
         FOut.close(); 
       Toast.makeText(getBaseContext(), "Save Files Successful", Toast.LENGTH_SHORT).show(); 
      } 
      catch (Exception e) { 
       Toast.makeText(getBaseContext(), "Save Files Failed", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

은 상기 문제가있다이 코드를 사용

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

스피 manifest.xml에 메시지를 추가? 당신이 순서 잡을 예외가 정확히 무엇이 잘못되었는지 볼 수

답변

0

인쇄 : 당신의 sdcard에 더 documents 폴더가없는 추측

catch (Exception e) { 
    e.printStackTrace(); 
    Toast.makeText(getBaseContext(), "Save Files Failed", Toast.LENGTH_SHORT).show(); 
} 

. myFile.createNewFile()하기 전에 다음 줄을 추가합니다 :

myFile.getParentFile().mkdirs(); 

을 또한, 당신은하지 하드 코드 sdcard에 경로를해야한다. 이 옵션을 사용합니다 : 난 당신이 당신의 장치 저장 장치에서 특정 파일에 텍스트를 작성해야 볼 수있는 것처럼 ... 내가 아주 쉽게 다른 모든 일을 처리하는 라이브러리를 제공하기 위해

File myFile = new File(Environment.getExternalStorageDirectory(),"documents/PreposisiRemoval.txt") 
+0

감사합니다. 선생님, 시도해보고 결과를보고하겠습니다. – abooo

+0

성공하지 못했습니다. 명령을 따랐습니다. – abooo

+0

그럼 스택 트레이스 란 무엇입니까? –

0

싶습니다.

이 라이브러리를 프로젝트에 추가하기 만하면 WriteLogToFile.appendLog 메서드를 사용하고 텍스트를 전달해야합니다.

here로 이동하여 라이브러리를 다운로드하십시오. 정말 도움이됩니다.

관련 문제