2013-06-07 4 views
4

을 TXT 텍스트 쓰기, 내 sdcard에 쓰기를 시도 :안드로이드 : 다음 코드와

public void writedata(String data) { 
      //BufferedWriter out = null; 

      System.out.println(data); 
      try{ 

       FileOutputStream out = new FileOutputStream(new File("/sdcard/tsxt.txt")); 
       out.write(data.getBytes()); 
       out.close(); 

       } catch (Exception e) { //fehlende Permission oder sd an pc gemountet} 
        System.out.println("CCCCCCCCCCCCCCCCCCCCCCCALSKDJLAK"); 
       } 

      } 

매니페스트에서 사용 권한 : 지금

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

하지만,이 파일을 열 때 아무것도 거기에 없다. 문제가 어디 있니? data에는 약간의 가치가있을 것입니다.

편집 :

02-06 01:59:51.676: W/System.err(1197): java.io.FileNotFoundException: /storage/sdcard0/sdcard/tsxt.txt: open failed: ENOENT (No such file or directory) 

내가 SDCARD에있는 파일하지만 여전히 같은 오류를 만들려고 :

나는 로그 캣에서이 메시지가 표시됩니다. 파일이 존재하지 않는다면 파일이 생성된다는 코드가 있습니까?

+0

당신은 당신의 명단에 이것을 가지고 있습니까? mari

+1

'BufferedWriter'는 텍스트를 쓰는 것이 더 적절할 것입니다. (http://www.mkyong.com/java/how-to-write-to-file-in-java-bufferedwriter-example/) –

+0

또한 BufferedWriter가있는 솔루션이 작동하지 않습니다! – user896692

답변

5

이 코드를보십시오 :

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File (sdCard.getAbsolutePath() + "/dir"); 

File file = new File(dir, "tsxt.txt"); 

FileOutputStream f = new FileOutputStream(file); 

것은 그래서 파일의 경로가 올바르지 않습니다. ,

BufferedWriter out;   
try { 

FileWriter fileWriter= new FileWriter(Environment.getExternalStorageDirectory().getPath()+"/tsxt.txt") 

out = new BufferedWriter(fileWriter); 

out.write("Your text to write"); 

out.close(); 

}catch (FileNotFoundException e) { 
e.printStackTrace(); 
}catch (IOException e) { 
e.printStackTrace(); 
} 
+1

LogCat에서이 메시지가 나타납니다. 02-06 01 : 59 : 51.676 : W/System.err (1197) : java.io.FileNotFoundException : /storage/sdcard0/sdcard/tsxt.txt : open failed : ENOENT (아니요 그러한 파일 또는 디렉토리) – user896692

2

이 시도해보십시오 : 당신은 디렉토리 이름을 제거해야합니다 그렇지 않다면 그냥 마운트 한 다음 외부 저장소 경로를 사용하여 파일을 씁니다.

당신은/저장

public File getAlbumStorageDir(String albumName) { 
     // Get the directory for the user's public pictures directory. 
     File file = new File(Environment.getExternalStorageDirectory() + "/files", albumName); 
     Log.d("File", "Bug file Created" + file.getAbsolutePath()); 
     return file; 
    }` 

가 (SD 카드 내부의 TEXTFILE를 작성하려면 ..이 코드는 완벽하게 작동하고

static public boolean hasStorage(boolean requireWriteAccess) { 
    //TODO: After fix the bug, add "if (VERBOSE)" before logging errors. 
    String state = Environment.getExternalStorageState(); 
    Log.v(TAG, "storage state is " + state); 

    if (Environment.MEDIA_MOUNTED.equals(state)) { 
     if (requireWriteAccess) { 
      boolean writable = checkFsWritable(); 
      Log.v(TAG, "storage writable is " + writable); 
      return writable; 
     } else { 
      return true; 
     } 
    } else if (!requireWriteAccess && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
     return true; 
    } 
    return false; 
} 

if(hasStorage(true)){ 

//call here your writedata() function 



} 
+0

불행히도 여전히 동일한 문제가 있습니다. 파일이 비어 있습니다 (이전에 생성했습니다) – user896692

+0

여전히 java.io.FileNotFoundException이 발생합니까? – IronBlossom

+0

그냥 장치 저장소를 마운트했거나 대량 저장 모드로 PC에 연결 했습니까? – IronBlossom

0

0

FileOutputStream fOut =openFileOutput(Environment.getExternalStorageDirectory().getPath()+"/tsxt.txt",MODE_WORLD_READABLE); 
OutputStreamWriter osw = new OutputStreamWriter(fOut); 
//---write the string to the file--- 
osw.write(str); 
osw.flush(); 
osw.close(); 
당신이이 sdcard에 설치되지 않았거나 확인해야 SD 카드에있는 모든 파일을 작성하기 전에보십시오 :

File dir = new File (sdCard.getAbsolutePath() + "/"); 
1
try{ 
    File myFile = new File("/sdcard/tsxt.txt"); 
    myFile.createNewFile(); 
    FileOutputStream fOut = new FileOutputStream(myFile); 
    OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
    myOutWriter.append("your data here"); 
    myOutWriter.close(); 
    fOut.close(); 
}catch(Exception e){} 
0

마운트 sdcard에 확인 코드를 따르고 사용하거나하지 않을 수 있습니다 /sdcard0/files/bugReport.txt)

try{ 
      outputStream = new FileOutputStream(this.getAlbumStorageDir(bugReport.txt)); 
      outputStream.write(report.toString().getBytes()); 
      Log.d("File","Report Generated"); 
      outputStream.close(); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
관련 문제