AndroidはSDCardにファイルを書きます

1672 ワード


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		//           SDCard
		boolean isMounted = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

		if (isMounted) {
			try {
				writeFileToSDCard();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else {
			Log.d("SDCard  ", "   SDCard!");
		}
	}

	//       SDCard
	private void writeFileToSDCard() throws IOException {
		//                   ,                 
		File parent_path = Environment.getExternalStorageDirectory();

		//                    
		File dir = new File(parent_path.getAbsoluteFile(), "Kelvin");
		dir.mkdir();

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

		Log.d("    ", file.getAbsolutePath());

		//       ,     
		file.createNewFile();

		FileOutputStream fos = new FileOutputStream(file);

		String data = "hello,world! Kelvin @ CSDN";
		byte[] buffer = data.getBytes();

		//            。
		fos.write(buffer, 0, buffer.length);
		fos.flush();
		fos.close();

		Log.d("    ", "  ");
	}
}
</span>

AndroidManifestにSDCardを読み書きする権限を追加することを忘れないでください.
<!-- SDCard         -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>