Android中保存数据到sd卡

目标:
模拟一个QQ登陆界面,当CheckBox勾选时,将第一次输入的QQ号和密码存至SD卡,下次打开app可自动显示。
关键步骤:
1. 添加一个UtilsSD业务类,用于处理数据的存储和获取,方法分别为saveUserInfo()和getUserInfo()。
数据存储的逻辑:
(1)判断SD卡是否挂载,若没有挂载则返回false。
(2)若挂载,初始化SD卡的文件存储路径,并根据路径和命名来建立SD卡文件file。
(3)创建file的输出流对象fos,将传入的number和password字符数据通过getBytes()方法转换为字节数组,并用fos的write()方法写入流。
数据获取的逻辑:
(1)判断SD卡是否挂载,若没有挂载则返回false。
(2)若挂载,初始化SD卡的文件存储路径,并根据路径和命名来建立SD卡文件file。
(3)创建缓冲流读入对象br,对file的输入流进行读入。
(4)使用br的readline()方法获取到字符串text。
(5)如果text不为空,使用split方法解析字符串,获得每个字段对应的value。最终返回键值对的Map集合。
打开的I/O流的对象,如BufferedReader, OutputStream等一定要及时关闭!
对SD卡操作要在AndroidManifest.xml文件中添加读写权限!
2. 在主界面的Activity里面调用UtilsSD中的两个方法进行操作。

两个主要方法的逻辑代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;

public class UtilsSD {
    /**存储数据
     * 
     * @param context
     * @param number
     * @param password
     * @return
     */
    public static boolean saveUserInfo(Context context, String number, String password){

        try {
            //调用Environment类中的getExternalStorageState()方法,获取SD卡状态对象
            String state = Environment.getExternalStorageState();
            //如果SD卡未处于挂载状态,return false
            if(!Environment.MEDIA_MOUNTED.equals(state)){ 
                return false;
            }
            //获得SD卡的dir路径,该地址可以适配不同手机,也可根据包名的改变做出改变
            File sdCardFile = Environment.getExternalStorageDirectory(); 
            //创建路径为sdCardFile,名称为sb.txt的文件file
            File file = new File(sdCardFile, "sb.txt"); 
            //创建输出流对象fos
            FileOutputStream fos = new FileOutputStream(file);
            //以##作为数据分隔符
            String data = number+"##"+password; 
            //写入流
            fos.write(data.getBytes()); 
            fos.flush(); 
            fos.close();

            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;

    }

    /**获取键值对数据
     * 
     * @param context
     * @return
     */
    public static Map<String, String> getUserInfo(Context context){

        try {
            String state = Environment.getExternalStorageState();
            if(!Environment.MEDIA_MOUNTED.equals(state)){
                //
                return null;
            }
            File sdCardFile = Environment.getExternalStorageDirectory(); 
            File file = new File(sdCardFile, "sb.txt"); 
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
            String text = br.readLine();
            br.close();
            if(!TextUtils.isEmpty(text)){
                Map<String, String> userInfoMap = new HashMap<String, String>();
                String[] split = text.split("##");
                userInfoMap.put("number", split[0]);
                userInfoMap.put("password", split[1]);
                return userInfoMap;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }
}
FPGA(可编程逻辑门阵列)是一种集成电路芯片,可以根据需要重新配置其内部电路,用于实现各种电子设备的数字逻辑功能。数据采集是指通过传感器或其他外部设备收集数据,并将其转换为FPGA可以处理的数字信号。 要将采集的数据存入SD卡(Secure Digital卡),首先需要将传感器或外部设备连接到FPGA。这通常涉及使用模数转换器(ADC)将模拟信号转换为数字信号,然后将其输入到FPGA的输入引脚。 一旦FPGA接收到数据,它可以使用其内部逻辑编写的程序对数据进行处理。这可能包括滤波、数据压缩、加密或其他算法,以适应特定应用需求。 当数据处理完成后,FPGA需要将数据写入SD卡。为实现这一目标,FPGA可以使用SD卡接口来与SD卡进行通信。这涉及通过SPI(串行外设接口)或SD协议与SD卡进行通信,读取SD卡上的目录结构,并将数据写入适当的文件。 在将数据存入SD卡之前,需要在SD卡上创建一个文件系统。这可以通过FPGA编写的程序来实现,该程序可以使用SD卡接口的命令和协议来创建文件、打开文件、写入数据和关闭文件。 一旦文件系统准备好后,FPGA可以将处理好的数据写入SD卡的文件。这需要将数据转换为适当的格式,并使用SD卡接口的命令和协议将其写入SD卡的指定文件位置。 通过这种方式,FPGA可以采集数据并将其直接存入SD卡,从而实现数据的持久存储和后续分析。这样的应用可以在很多领域使用,例如物联网、工业自动化、仪器仪表等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值