Android 向SD卡中存储数据

本文提供了一个Java实例,展示了如何在Android应用中进行SD卡文件的创建、写入及读取操作。包括文件路径设置、创建文件夹、文件创建与关闭流程,以及如何从SD卡读取文件内容。

1.java文件

package com.example.fileoperate;

import java.io.File;

public class MainActivity extends Activity {
 private static final String FILENAME = "/sdcard/wyt/wei.txt";  //设置文件名称
 private TextView msg;

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  msg = (TextView) findViewById(R.id.msg);
  File file = new File(FILENAME);    //定义要操作的文件
  if(!file.getParentFile().exists()){
   file.getParentFile().mkdirs();   //创建副文件夹路径
  }
  PrintStream out = null;
  try {
   out = new PrintStream(new FileOutputStream(file));
   out.println("移动未来:爱德华");
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   if (file != null ) {
    out.close();
   }
  }
  
 }

 

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

}

千万别忘了加权限啊

2.从SD卡读取文件

 

package com.example.fileoperate;

import java.io.File;

public class MainActivity extends Activity {
 private static final String FILENAME = "wei.txt";  //设置文件名称
 private static final String DIR = "wyt";
 private TextView msg;

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  msg = (TextView) findViewById(R.id.msg);
  if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
   File file = new File(Environment.getExternalStorageDirectory()+File.separator+DIR+File.separator+FILENAME);
   if(!file.getParentFile().exists()){
    file.getParentFile().mkdirs();
   }
//   PrintStream out = null;
   Scanner scan = null;
   try {
    scan = new Scanner(new FileInputStream(file));
    while (scan.hasNext()) {
     msg.append(scan.next()+"\n");
     
    }
//    out = new PrintStream(new FileOutputStream(file));
//    out.println("移动未来:爱德华");
   } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }finally{
    if (file != null ) {
     scan.close();
    }
   }
  }else{
   Toast.makeText(this, "没有内存卡", Toast.LENGTH_LONG).show();
  }
  
  
  
 }

 

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值