Android文件存储_A_文本文件_自定义 向SDCard上保存文件

来源:互联网 发布:什么是网络安全管理 编辑:程序博客网 时间:2024/05/17 04:06

package com.file.activity;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
import com.file.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

//自定义 向SDCard上保存文件
public class FileOperateSdcard extends Activity {
 private static final  String FILENAME = "/mnt/" +
   "sdcard/FileOperateSdcard/mymldn.txt";//SDCard上保存路径及文件名称
 private TextView msg = null; 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  super.setContentView(R.layout.main);
  msg = (TextView)findViewById(R.id.msg);
  File file = new File(FILENAME);//定义要操作的文件
  isFile(file);      
  fileOutput(file);
  fileInput(file);
 }
 /**
  * 判断文件是否存在
  * */
 private void isFile(File file) {
  
  if(!file.getParentFile().exists()){
   file.getParentFile().mkdirs();
  }
  else
   return ;
 }
 /**
  * 文件读取
  * */
 private void fileInput(File file)  {
  Scanner scanner = null;
  FileInputStream input=null;
  try {
   input = new FileInputStream(file);
   scanner = new Scanner(input);//扫描流
  } catch (FileNotFoundException e) {
   
   e.printStackTrace();
  }
  
  while(scanner.hasNext()){
   
   this.msg.append(scanner.next()+"\n");
  }
  scanner.close();
  
  
 }
 /**
  * 文件存储
  * */
 private void fileOutput(File file) {
  PrintStream out = null;
  try {
    out = new PrintStream(file);
   out.print("南阳理工学院软件学院梦翔工作室,学生:熊猫a6");
  } catch (FileNotFoundException e) {
   
   e.printStackTrace();
  }finally{
   if(out != null)
    out.close();
  }
  
 }
}

其实以上代码只判断了文件是否存在,但是更全面的方法是先判断Sdcard是否存在

具体步骤如下

  1.加入sdcard操作权限;
  2.确认sdcard的存在;
  3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件;

  在AndroidManifest.xml添加sdcard操作权限
  <!-- sdcard权限 -->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
  </uses-permission>

  变量声明:
  private final static String PATH = "/sdcard/digu";
  private final static String FILENAME = "/notes.txt";

  向sdcard写文件
   /**
   * 写文件
   */
   private void onWrite() {
   try {
   Log.d(LOG_TAG, "Start Write");
   //1.判断是否存在sdcard
   if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
   //目录
   File path = new File(PATH);
   //文件
   File f = new File(PATH + FILENAME);
   if(!path.exists()){
   //2.创建目录,可以在应用启动的时候创建
   path.mkdirs();
   }
   if (!f.exists()) {
   //3.创建文件
   f.createNewFile();
   }
   OutputStreamWriter osw = new OutputStreamWriter(
   new FileOutputStream(f));
   //4.写文件,从EditView获得文本值
   osw.write(editor.getText().toString());
   osw.close();
   }
   } catch (Exception e) {
   Log.d(LOG_TAG, "file create error");
   }

   }

 

原创粉丝点击