I. Basic outline
1. Description:
1> the data files used to run the application can be saved to the SD card
2> file Type: arbitrary
3> Data Save path:
Path 1:/storage/sdcard/android/data/packagename/files Other apps can access, remove when applying uninstall
Path 2:/storage/sdcard/xxx/(indicates that the file you created--xxx) can be accessed by other apps and will not be deleted when the app is uninstalled
2. Related API
Environment Operation SD Card tool class:
---get SD card status: Environment.getexternalstoragestate ()
SD card can read and write Mount status value: environment.media_mounted
---get SD card path: Environment.getexternalstoragedirectory ()
Context.getexternalfilesdir ():
---get/mnt/sdcard/android/data/package_name/files/xxx.txt
Permissions to operate the SD card:
---android.permission.WRITE_EXTERNAL_STORAGE is write-only, but it can be read after it is added.
Ii. Development Steps (Path 1)
1. Write Data
1> determine the status of the SD card if the status of the Mount continues
2> get input file name/content
3> gets the outputstream of the specified file:
. Get the files path under the SD card
. Make a full path
. Create FileOutputStream
4> Writing data
if (Environment.getexternalstoragestate (). Equals (environment.media_mounted)) {
String filename= "XRK";
String filecontent= "I am not a sunflower";
String filespath=getexternalfilesdir (null). GetAbsolutePath ();
String filepath=filespath+ "/" +filename;
FileOutputStream fos=new FileOutputStream (FilePath);
Fos.write (Filecontent.getbytes ("Utf-8"));
Fos.close ();
Toast.maketext (Mainactivity.this, "saved successfully", Toast.length_short). Show ();
}else{
Toast.maketext (Mainactivity.this, "Save Yes than", Toast.length_short). Show ();
}
2. Read the data:
if (Environment.getexternalstoragestate (). Equals (environment.media_mounted)) {
String filename= "XRK";
String filespath=getexternalfilesdir (null). GetAbsolutePath ();
System.out.println ("Iueiudshcs" +filespath);
String filepath=filespath+ "/" +filename;
FileInputStream fis=new FileInputStream (FilePath);
Bytearrayoutputstream baos=new Bytearrayoutputstream ();
Byte[] Buffer=new byte[1024];
int len=-1;
while ((Len=fis.read (buffer))!=-1) {
Baos.write (buffer, 0, Len);
}
String content=baos.tostring ();
Toast.maketext (Mainactivity.this, "read succeeded" +content, Toast.length_short). Show ();
}else{
Toast.maketext (Mainactivity.this, "read failed", Toast.length_short). Show ();
}
Iii. Development Steps (Path 2)
1. Write Data
if (Environment.getexternalstoragestate (). Equals (environment.media_mounted)) {
String filename= "Cheriong. txt";
String filecontent= "I am not a sunflower";
Gets the output stream of the specified file
String sdpath=environment.getexternalstoragedirectory (). GetAbsolutePath ();
File File=new file (sdpath+ "/atguigu");
if (!file.exists ()) {
File.mkdirs ();//Create Folder
}
String filepath=sdpath+ "/atguigu/" +filename;
String filespath=getexternalfilesdir (null). GetAbsolutePath ();
System.out.println ("Iueiudshcs" +filespath);
FileOutputStream fos=new FileOutputStream (FilePath);
Fos.write (Filecontent.getbytes ("Utf-8"));
Fos.close ();
Toast.maketext (Mainactivity.this, "saved successfully", Toast.length_short). Show ();
}else{
Toast.maketext (Mainactivity.this, "Save Yes than", Toast.length_short). Show ();
}
2. Read the data:
if (Environment.getexternalstoragestate (). Equals (environment.media_mounted)) {
String filename= "Cheriong. txt";
String sdpath=environment.getexternalstoragedirectory (). GetAbsolutePath ();
String filepath=sdpath+ "/atguigu/" +filename;
FileInputStream fis=new FileInputStream (FilePath);
Bytearrayoutputstream baos=new Bytearrayoutputstream ();
Byte[] Buffer=new byte[1024];
int len=-1;
while ((Len=fis.read (buffer))!=-1) {
Baos.write (buffer, 0, Len);
}
String content=baos.tostring ();
Fis.close ();
Toast.maketext (Mainactivity.this, "read succeeded" +content, Toast.length_short). Show ();
}else{
Toast.maketext (Mainactivity.this, "read failed", Toast.length_short). Show ();
}
External file storage for android-data storage (sdcard)