Android 自动创建文件到scard卡并保存

Android 自动创建文件到scard卡并保存

直接上Activity代码:

public class DRMPTestActivity extends Activity implements OnClickListener{
   
    String fileName = "";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
    }


 /* (non-Javadoc)
  * @see android.view.View.OnClickListener#onClick(android.view.View)
  */
 @Override
 public void onClick(View v) {
 
  // TODO Auto-generated method stub
  switch (v.getId()) {
  case R.id.save:
   Time t = new Time();
   t.setToNow();
   //定义文件名称
   fileName = "DRMP-" + t.year + t.month + t.monthDay
     + t.hour + t.minute + ".txt";
   final EditText fileText =  new EditText(DRMPTestActivity.this);
   fileText.setText(fileName);
   // 定义一个对话框
   new AlertDialog.Builder(DRMPTestActivity.this)
    .setTitle("请输入文件名")// 标题
    .setIcon(android.R.drawable.ic_dialog_info)// 图标
    .setView(fileText)// 为对话框传入了一个文本编辑框
    .setPositiveButton("确定",
     // 对话框监听事件
     new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog,
         int whichButton) {
       String temp = fileText.getText().toString();
       if (temp != null || temp != ""){
        fileName = temp;
       }
       String data = “哈回家啊就是开始卡”;
       
       WriteData(fileName, data);
       Toast.makeText(getApplicationContext(), "\""+fileName+"\"正在保存...", Toast.LENGTH_LONG)
       .show();
      }
     }).setNegativeButton("取消", null).show();
   
   break;
  }
 
 } 
 
 // 将数据存储到SD卡,filename为文件名,data为要存储的内容
 private void WriteData(String fileName, String data) {
  FileService fileService = new FileService(getApplicationContext());
  try {
   // 判断SDCard是否存在并且可以读写
   if (Environment.getExternalStorageState().equals(
     Environment.MEDIA_MOUNTED)) {
    fileService.saveToSD(fileName, data);
   } else {
   
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}

fileService代码:

package com.cmdi.util;

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

import android.content.Context;

public class FileService {

private Context context;

public FileService(Context context) {
  super();
  this.context = context;
 }

/**
  * 写入文件到SD卡
  *
  * @throws IOException
  */
 public void saveToSD(String fileNameStr, String fileContentStr)
   throws IOException {

// 备注:Java File类能够创建文件或者文件夹,但是不能两个一起创建
  File file = new File("/mnt/sdcard/DRMP");

if (!file.exists()) {
   file.mkdir();
  }
  File file1 = new File(file, fileNameStr);

FileOutputStream fos = new FileOutputStream(file1,true);
  fos.write(fileContentStr.getBytes());
  fos.close();
 
 
 }

/**
  * 保存文件到手机
  *
  * @param fileNameStr
  *            文件名
  * @param fileContentStr
  *            文件内容
  * @throws IOException
  */
 public void save(String fileNameStr, String fileContentStr)
   throws IOException {
  // 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容
  FileOutputStream fos = context.openFileOutput(fileNameStr,
    context.MODE_PRIVATE);
  fos.write(fileContentStr.getBytes());
  fos.close();
 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/744526a35432d8665c2ce962c6877e2e.html