1. Use the mksdcard command to create a 128 m sd card image named sdcard. IMG (m must be capitalized.
Mksdcard 128 M sdcard. img
2. Copy sdcard. IMG to D: \ projects2 and set the startup parameters in the run configuration dialog box in eclipse.
-Sdcard D: \ projects2 \ sdcard. img
In this way, the SD card is available.
3. add content to sdcard
ADB push E: \ Xunlei \ give.mp3/sdcard/give.mp3.
4. Read and Write files in the Application
Note: If you want to write the SD card in the application,
Android. Permission. write_external_storage must be added with the androi permission.
As follows:
<Uses-Permission Android: Name = "android. Permission. write_external_storage"> </uses-Permission>
Instance 1:
Button button6 = (button) findviewbyid (R. Id. button06 );
Onclicklistener listener6 = new onclicklistener (){
@ Override
Public void onclick (view v ){
Createsdfile ();
}
};
Button6.setonclicklistener (listener6 );
Button button7 = (button) findviewbyid (R. Id. button07 );
Onclicklistener listener7 = new onclicklistener (){
@ Override
Public void onclick (view v ){
Writesdfile (kfilename );
}
};
Button7.setonclicklistener (listener7 );
Button button8 = (button) findviewbyid (R. Id. button08 );
Onclicklistener listener8 = new onclicklistener (){
@ Override
Public void onclick (view v ){
Readsdfile (kfilename );
}
};
Button8.setonclicklistener (listener8 );
String kfilename = "/sdcard/uad2/test.txt ";
Void createsdfile ()
{
Createsdfile (kfilename );
}
Final Static string ksdcardroot = "sdcard ";
Void createsdfile (string filefullname)
{
If (filefullname. charat (0) = '/')
Filefullname = filefullname. substring (1, filefullname. Length ());
String name [] = filefullname. Split ("/");
If (name = NULL | Name. Length <2)
Return;
If (! Name [0]. Equals (ksdcardroot ))
{
Log. I (TAG, filefullname + "is not a file" + name [0]);
Return;
}
File sddir = new file ("/" + ksdcardroot );
If (! Sddir. exists ())
{
Log. I (TAG, "SD card is not exists ");
Return;
}
If (! Sddir. canwrite ())
{
Log. I (TAG, sddir. Length () + "SD card can not be wrote" + sddir. Canread ());
Return;
}
File dir = sddir;
For (INT I = 1; I <name. Length-1; I ++)
{
Dir = new file (dir. getabsolutepath () + "/" + name [I]);
If (dir. exists ())
Continue;
Boolean res = dir. mkdir ();
If (! Res)
{
Log. I (TAG, "Create dir:" + Res + "fail" + name [I]);
Return;
}
}
String filename = Name [name. Length-1]. Trim ();
If (filename. Length ()> 0)
{
File file = new file (dir. getabsolutepath () + "/" + name [name. Length-1]);
If (! File. exists ())
{
Try {
File. createnewfile ();
} Catch (ioexception E)
{
Log. E (TAG, "creat file erro:", e );
}
}
}
}
Void writesdfile (string filename)
{
File file = new file (filename );
If (! File. exists ())
Createsdfile (filename );
If (! File. canwrite ())
{
Log. I (TAG, "file:" + file. getabsolutefile () + "can not to be wrote ");
Return;
}
String content = "Hello:" + system. currenttimemillis ();
Fileoutputstream OS = NULL;
Try {
OS = new fileoutputstream (File );
OS. Write (content. getbytes ());
Log. I (TAG, "write:" + content );
}
Catch (ioexception E)
{
Log. E (TAG, "Write File", e );
}
Finally
{
If (OS! = NULL)
{
Try {
OS. Flush ();
OS. Close ();
} Catch (ioexception E)
{
Log. E (TAG, "Close file", e );
}
}
}
}
Void readsdfile (string filename)
{
String content;
Fileinputstream is = NULL;
File file = new file (filename );
If (! File. exists ())
{
Log. I (TAG, file. getabsolutepath () + "is not exists ");
Return;
}
If (! File. Canread ())
{
Log. I (TAG, file. getabsolutepath () + "can not be read ");
Return;
}
Try {
Is = new fileinputstream (File );
Byte buffer [] = new byte [is. Available ()];
Is. Read (buffer );
Content = new string (buffer );
Log. I (TAG, "Read SD file:" + content );
// Inputstreamreader inreader = new inputstreamreader (is );
}
Catch (ioexception E)
{
Log. E (TAG, "Write File", e );
}
Finally
{
If (is! = NULL)
{
Try {
Is. Close ();
} Catch (ioexception E)
{
Log. E (TAG, "Close file", e );
}
}
}
}