# 네이버블로그에서 이사 (2012.07.13 게시물. http://blog.naver.com/rkdmfql1540)
안드로이드 sd카드에 접근해 sd카드에 파일을 저장하거나 읽어오는 샘플 소스.
먼저 해당 앱에서 sd카드에 저장하거나 읽어 오기 위해서는 매니페스트에 다음에 해당하는 퍼미션을 추가해야 한다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
아래는 주석과 소스이다. save메소드는 sd카드에 저장 load 메소드는 데이터를 읽어오는 메소드이다.
public static void save(String result) {
String sdPath; //SD 카드의 경로
String externalState = Environment.getExternalStorageState();
if (externalState.equals(Environment.MEDIA_MOUNTED)) {
//외부 저장 장치가 마운트 되어서 읽어올 준비가 되었을 때
sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
} else {
//마운트 되지 않았을 때
sdPath = Environment.MEDIA_UNMOUNTED;
}
File file = new File(sdPath + "/myDir");
if (!file.isDirectory())
file.mkdir(); //디렉토리 만들기
File file1 = new File(sdPath + "/mydir/text.txt");
try {
FileOutputStream fos = new FileOutputStream(file1);
fos.write(result.getBytes());
fos.close();
} catch (Exception e) {
Log.i("파일 저장 실패:", e.getMessage());
}
}
//데이터 로드 메소드
public static String load() {
String sdPath; //SD 카드의 경로
String externalState = Environment.getExternalStorageState();
if (externalState.equals(Environment.MEDIA_MOUNTED)) {
//외부 저장 장치가 마운트 되어서 읽어올 준비가 되었을 때
sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
} else {
//마운트 되지 않았을 때
sdPath = Environment.MEDIA_UNMOUNTED;
}
String result = "";
try {
String dir = sdPath + "/myDir/text.txt";
//파일에서 읽어오기 위한 스트림 객체
File file = new File(dir);
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
result = new String(buffer);
} catch (Exception e) {
Log.i("불러오기 실패", e.getMessage());
}
return result;
}