# 네이버블로그에서 이사 (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; }