sd卡测试,创建、删除和读文件

来源:互联网 发布:淘宝店铺等级怎么升 编辑:程序博客网 时间:2024/06/16 02:40

在模拟器上写测试sd卡程序,首先确保模拟器已经创建sd卡。

模拟器sd卡,<--  和-->为导出文件和导入文件,-和+为添加和删除文件。

 

文件操作类 FIleHelp.java

package com.he.sdtest;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import android.content.Context;import android.os.Environment;public class FileHelp {private Context context;     /** SD卡是否存在**/     private boolean hasSD = false;     /** SD卡的路径**/     private String SDPATH;     /** 当前程序包的路径**/     private String FILESPATH;     public FileHelp(Context context) {         this.context = context;         hasSD = Environment.getExternalStorageState().equals(                 android.os.Environment.MEDIA_MOUNTED);         SDPATH = Environment.getExternalStorageDirectory().getPath();         FILESPATH = this.context.getFilesDir().getPath();     }      /**     * 在SD卡上创建文件     */     public File createSDFile(String fileName) throws IOException {         File file = new File(SDPATH + "//" + fileName);         if (!file.exists()) {             file.createNewFile();         }         return file;     }      /**     * 删除SD卡上的文件     */     public boolean deleteSDFile(String fileName) {         File file = new File(SDPATH + "//" + fileName);                 if (file == null || !file.exists() || file.isDirectory())             return false;         return file.delete();     }      /**     * 读取SD卡中文本文件     */     public String readSDFile(String fileName) {         StringBuffer sb = new StringBuffer();         File file = new File(SDPATH + "//" + fileName);         try {             FileInputStream fis = new FileInputStream(file);             int c;             while ((c = fis.read()) != -1) {                 sb.append((char) c);             }             fis.close();         } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }         return sb.toString();     }      public String getFILESPATH() {         return FILESPATH;     }     public String getSDPATH() {         return SDPATH;     }      public boolean hasSD() {         return hasSD;     } }

 

MainActivity.java 源代码:

package com.he.sdtest;import java.io.IOException;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {private TextView hasSDTextView;     private TextView SDPathTextView;     private TextView FILESpathTextView;     private TextView createFileTextView;     private TextView readFileTextView;     private TextView deleteFileTextView;     private FileHelp helper; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);hasSDTextView = (TextView)findViewById(R.id.textView1);SDPathTextView = (TextView)findViewById(R.id.textView2);FILESpathTextView = (TextView)findViewById(R.id.textView3);createFileTextView = (TextView)findViewById(R.id.textView4);readFileTextView = (TextView)findViewById(R.id.textView5);deleteFileTextView = (TextView)findViewById(R.id.textView6);helper = new FileHelp(getApplicationContext());          hasSDTextView.setText("SD卡是否存在:" + helper.hasSD());         SDPathTextView.setText("SD卡路径:" + helper.getSDPATH());         FILESpathTextView.setText("包路径:" + helper.getFILESPATH());         try {             createFileTextView.setText("创建文件:"                     + helper.createSDFile("test.txt").getAbsolutePath());         } catch (IOException e) {             e.printStackTrace();         }          deleteFileTextView.setText("删除文件是否成功:"                 + helper.deleteSDFile("delete.txt"));          readFileTextView.setText("读取文件:" + helper.readSDFile("hello.txt")); }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <TextView        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView2"        android:layout_below="@+id/textView2"        android:layout_marginTop="26dp"        android:text="TextView" />    <TextView        android:id="@+id/textView3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView1"        android:layout_below="@+id/textView1"        android:layout_marginTop="16dp"        android:text="TextView" />    <TextView        android:id="@+id/textView4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView3"        android:layout_below="@+id/textView3"        android:layout_marginTop="24dp"        android:text="TextView" />    <TextView        android:id="@+id/textView5"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView4"        android:layout_below="@+id/textView4"        android:layout_marginTop="22dp"        android:text="TextView" />    <TextView        android:id="@+id/textView6"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView5"        android:layout_below="@+id/textView5"        android:layout_marginTop="16dp"        android:text="TextView" /></RelativeLayout>

 

记得添加允许读写外部设备的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

运行结果,如下图所示: