0

이 코드의 목적은 test.txt라는 텍스트 파일을 ABCPrint 폴더에 저장하는 것입니다.
현재 폴더를 만들고 test.txt 파일을 만들지 만 파일을 열면 텍스트가 없습니다. 나는 모든 것을 시도해 보았고 사용 권한 문제가 아닌 것처럼 보였습니다.

누구든지 파일에 문자열을 쓰지 못하게하는 코드를 잘못 본 사람이 있습니까?Android 텍스트 파일 저장시 파일에 텍스트를 쓰지 않습니다.

try { 

    File testFolder = new File(Environment.getExternalStorageDirectory(),"ABCPrint"); 
    testFolder.mkdirs(); 

    File file = new File(testFolder, "test.txt"); 
    boolean isnew =file.createNewFile(); 

    FileOutputStream fileOut = openFileOutput(file.getName(), Context.MODE_WORLD_WRITEABLE); 
    OutputStreamWriter outputWriter = new OutputStreamWriter(fileOut); 

    outputWriter.write("Hello World!"); 
    outputWriter.write("\n"); 
    outputWriter.flush(); 
    outputWriter.close(); 
    fileOut.flush(); 
    fileOut.close(); 

} catch (Exception e) { 

    Log.i("Error", "Here", e); 
} 
+0

http://tausiq.wordpress.com/2012/06/16/readwrite-text-filedata-in-android-example-code/ 이것을 읽으려면 문을 닫기 전에 thngs를 플러시하십시오. –

답변

3

이 줄을 호출 할 때마다 파일이 다시 만들어집니다. 이렇게하는 또 다른 쉬운 방법이 있습니다.

File testFolder = new File(
      Environment.getExternalStorageDirectory(), 
      "ABCPrint"); 
if (!testFolder.exists()) 
{ 
    try 
    { 
     testFolder.createNewFile(); 
    } 
    catch (IOException e){ 
     e.printStackTrace(); 
    } 
} 
try 
{ 
    //BufferedWriter for performance, true to set append to file flag 
    BufferedWriter buf = new BufferedWriter(new FileWriter(testFolder, true)); 
    buf.append("Hello World!"); 
    buf.newLine(); 
    buf.close(); 
} 
catch (IOException e){ 
    e.printStackTrace(); 
} 

행운을 빈다.

+0

솔직히 말해서 무엇이 원래 잘못했다,하지만이 작은 수정을 제외하고 작동 'BufferedWriter의 버피 = 새로운 BufferedWriter의 (새 FileWriter (testFolder + "/testfile.txt" \t \t \t \t \t 사실)); ' –