package com.jpyu.sdcard;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class sdcardActivity extends Activity {
    /** Called when the activity is first created. */
   // GUI controls
   EditText txtData;
   Button btnWriteSDFile;
   Button btnReadSDFile;
   Button btnClearScreen;
   Button btnClose;

   private final String SD_PATH = android.os.Environment
         .getExternalStorageDirectory().getAbsolutePath();
   public static final String FILE_PATH = "/fileio"; 
   private final String INPUT_FILENAME = "file.doc";

   String dirPath = SD_PATH+FILE_PATH+"/";
   String filenameWithPath = SD_PATH+FILE_PATH+"/"+INPUT_FILENAME;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      findViews();
      setListener();
   }// onCreate

   private void findViews() {
      
      // bind GUI elements with local controls
      txtData = (EditText) findViewById(R.id.txtData);
      txtData.setHint("Enter some lines of data here...");

      btnWriteSDFile = (Button) findViewById(R.id.btnWriteSDFile);
      btnReadSDFile = (Button) findViewById(R.id.btnReadSDFile);
      btnClearScreen = (Button) findViewById(R.id.btnClearScreen);
      btnClose = (Button) findViewById(R.id.btnClose);
   }

    private void setListener() {

          btnWriteSDFile.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                writeFileToSdcardv2();
             }// onClick
          }); // btnWriteSDFile

          btnReadSDFile.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                readFileFromSdcardv1();
             }// onClick
          }); // btnReadSDFile

          btnClearScreen.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                // clear text box
                txtData.setText("");
             }
          }); // btnClearScreen

          btnClose.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                // clear text box
                finish();
             }
          }); // btnClose
   }
    
    void readFileFromSdcardv1(){
      
      try {
      File myFile = new File(filenameWithPath);
      FileInputStream fIn = new FileInputStream(myFile);
      BufferedReader myReader = new BufferedReader(
            new InputStreamReader(fIn));
      String aDataRow = "";
      String aBuffer = "";
      while ((aDataRow = myReader.readLine()) != null) {
         aBuffer += aDataRow + "\n";
      }
      txtData.setText(aBuffer);
      myReader.close();
      Toast.makeText(getBaseContext(),
            "Done reading SD 'mysdfile.txt'",
            Toast.LENGTH_SHORT).show();
   } catch (Exception e) {
      Toast.makeText(getBaseContext(), e.getMessage(),
            Toast.LENGTH_SHORT).show();
   }
    }
    
    void writeFileToSdcardv1(){

      // write on SD card file data in the text box
      try {
         File myFile = new File(filenameWithPath);
         myFile.createNewFile();
         FileOutputStream fOut = new FileOutputStream(myFile);
         OutputStreamWriter myOutWriter = 
                           new OutputStreamWriter(fOut);
         myOutWriter.append(txtData.getText());
         myOutWriter.close();
         fOut.close();
         Toast.makeText(getBaseContext(),
               "Done writing SD 'mysdfile.txt'",
               Toast.LENGTH_SHORT).show();
      } catch (Exception e) {
         Toast.makeText(getBaseContext(), e.getMessage(),
               Toast.LENGTH_SHORT).show();
      }
    }

   
    void writeFileToSdcardv2(){
      
      // write on SD card file data in the text box
      try {
         // create a File object for the parent directory 
         File newDir = new File(dirPath); 
         // have the object build the directory structure, if needed. 
         newDir.mkdirs(); 
         
         File myFile = new File(filenameWithPath);
         myFile.createNewFile();
         FileOutputStream fOut = new FileOutputStream(myFile);
         OutputStreamWriter myOutWriter = 
                           new OutputStreamWriter(fOut);
         myOutWriter.append(txtData.getText());
         myOutWriter.close();
         fOut.close();
         Toast.makeText(getBaseContext(),
               "Done writing SD 'mysdfile.txt'",
               Toast.LENGTH_SHORT).show();
      } catch (Exception e) {
         Toast.makeText(getBaseContext(), e.getMessage(),
               Toast.LENGTH_SHORT).show();
      }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff0000ff"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/txtData"
android:layout_width="fill_parent"
android:layout_height="180px"
android:textSize="18sp"  />

<Button
android:id="@+id/btnWriteSDFile"
    android:layout_width="251px"
    android:layout_height="wrap_content"
android:text="1. Write SD File"  />

<Button
android:id="@+id/btnClearScreen"
    android:layout_width="251px"
    android:layout_height="wrap_content"
android:text="2. Clear Screen"  />

<Button
android:id="@+id/btnReadSDFile"
    android:layout_width="251px"
    android:layout_height="wrap_content"
android:text="3. Read SD File"  />

<Button
android:id="@+id/btnClose"
    android:layout_width="251px"
    android:layout_height="wrap_content"
android:text="4. Close" />

</LinearLayout>
全站熱搜
創作者介紹
創作者 程式小試身手 的頭像
程式小試身手

程式小試身手

程式小試身手 發表在 痞客邦 留言(0) 人氣()