Android 内存读写 库,存储数据的方式

[android]代码库1.SharedPreferences,存储方式(key,value)

存储:

editor = getSharedPreferences("lock", MODE_WORLD_WRITEABLE).edit(); //MODE设定权限,只能这个程序访问,或者所有程序都可以访问

editor.putString("1","key"); //(key,value)键值对

editor.commit();

取数据:

getSharedPreferences("lock", MODE_WORLD_READABLE).getString("1","")

可以通过Toast显示到屏幕上:

Toast.makeText(MainActivity.this, getSharedPreferences("lock", MODE_WORLD_READABLE).getString("1",""), Toast.LENGTH_SHORT).show();

2.文件读取和保存

MainActivity.Java:

package com.example.savedatademo;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.PrintStream;

import java.util.Scanner;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

private Button saveBtn = null;

private Button readBtn = null;

private EditText input = null;

private final static String FILE_NAME = "xth.txt"; // 设置文件的名称

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

input = (EditText) findViewById(R.id.input);

saveBtn = (Button) findViewById(R.id.btn1);

readBtn = (Button) findViewById(R.id.btn2);

saveBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String data = input.getText().toString();

save(data);

Toast.makeText(MainActivity.this, "保存数据成功!", Toast.LENGTH_SHORT)

.show();

}

});

readBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

StringBuffer sb = read();

Toast.makeText(MainActivity.this, "读取数据为:" + sb,

Toast.LENGTH_SHORT).show();

}

});

}

private StringBuffer read() {

FileInputStream in = null;

Scanner s = null;

StringBuffer sb = new StringBuffer();

try {

in = super.openFileInput(FILE_NAME);

s = new Scanner(in);

while (s.hasNext()) {

sb.append(s.next());

}

} catch (Exception e) {

e.printStackTrace();

}

return sb;

}

private void save(String data) {

FileOutputStream out = null;

PrintStream ps = null;

try {

out = super.openFileOutput(FILE_NAME, Activity.MODE_APPEND);

ps = new PrintStream(out);

ps.println(data);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (out != null) {

try {

out.close();

ps.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

activity_main.xml:

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="com.example.savedatademo.MainActivity" >

android:id="@+id/input"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入" />

android:id="@+id/btn1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/input"

android:text="保存数据" />

android:id="@+id/btn2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/btn1"

android:text="读取数据"/>

3.读写SD卡上的数据

3.1申请权限:

3.2读写文件的函数

// 文件写操作函数

private void write(String content) {

if (Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED)) { // 如果sdcard存在

File file = new File(Environment.getExternalStorageDirectory()

.toString()

+ File.separator

+ DIR

+ File.separator

+ FILENAME); // 定义File类对象

if (!file.getParentFile().exists()) { // 父文件夹不存在

file.getParentFile().mkdirs(); // 创建文件夹

}

PrintStream out = null; // 打印流对象用于输出

try {

out = new PrintStream(new FileOutputStream(file, true)); // 追加文件

out.println(content);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (out != null) {

out.close(); // 关闭打印流

}

}

} else { // SDCard不存在,使用Toast提示用户

Toast.makeText(this, "保存失败,SD卡不存在!", Toast.LENGTH_LONG).show();

}

}

// 文件读操作函数

private String read() {

if (Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED)) { // 如果sdcard存在

File file = new File(Environment.getExternalStorageDirectory()

.toString()

+ File.separator

+ DIR

+ File.separator

+ FILENAME); // 定义File类对象

if (!file.getParentFile().exists()) { // 父文件夹不存在

file.getParentFile().mkdirs(); // 创建文件夹

}

Scanner scan = null; // 扫描输入

StringBuilder sb = new StringBuilder();

try {

scan = new Scanner(new FileInputStream(file)); // 实例化Scanner

while (scan.hasNext()) { // 循环读取

sb.append(scan.next() + "\n"); // 设置文本

}

return sb.toString();

} catch (Exception e) {

e.printStackTrace();

} finally {

if (scan != null) {

scan.close(); // 关闭打印流

}

}

} else { // SDCard不存在,使用Toast提示用户

Toast.makeText(this, "读取失败,SD卡不存在!", Toast.LENGTH_LONG).show();

}

return null;

}

694748ed64b9390909c0d88230893790.png

将ncdx98.fne放在易语言lib目录下 将ncdx98_static.lib放在易语言static_lib目录下 即可使用 virscan查毒链接:http://www.virscan.org/scan/bfb948a9c839be980a853d26cb762eb7 哈勃查毒链接:https://habo.qq.com/file/showdetail?md5=932b29e2ff7649962a672183cd12bf27&pk=ADwGZV1rB2MIPFs5 {ECF1A0B0-BF8B-1EFF-CBD8-ECD74EFCBCBB} Q群:133320211 欢迎反馈 BUG 易语言加载驱动误报正常 可上传在线查毒 如果有使用过之前版本支持的朋友 建议安装支持之前 Ctrl+a 屏蔽源码以后再安装 防止参数错乱 v2.3 18.11.3 添加 x64进程内存类 取内存属性 添加 x64进程内存类 置内存属性 添加 x64进程内存类 置为可写 添加 x64进程内存类 是否可写 v2.2 18.10.28 新增 x64进程内存类 64系统专用 删除多余判断 使用进程句柄操作 添加 x64进程内存类 申请内存 添加 x64进程内存类 释放内存 v2.1 18.10.13 修改 进程_是否64位 判断进程是否为64位进程,是64位进程返回真,否则返回假。 添加 读u文本型 添加 写u文本型 v2.0 18.10.11 完善了支持参数详解 新增 搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 再次搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 再次搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 特征码搜索2 支持通配符搜索 返回十六进制文本内存地址 新增 读二叉树 新增 读文本型Ex 新增 写文本型Ex 新增 读字节集Ex 新增 写字节集Ex 修改 读代码 如:"10007AFA8+50+14" 地址中允许带模块名(模块名要用尖括号括起来),如:+50+14 修改 写代码 修改 读文本型 支持Unicode 自动判断读取长度 修改 写文本型 支持Unicode v1.21 18.9.28 修正 进程_枚举模块x bug 修正 特征码搜索 bug 真正支持64程序搜索 修正 搜索 bug 真正支持64程序搜索 v1.2 18.9.24 新增 进程_枚举模块 支持64进程 需提升自身权限 新增 搜索Ex 返回文本地址 新增 再次搜索Ex 返回文本地址 v1.1 18.9.19 修改 进程_取模块地址32 可取出模块内存区域地址大小 新增 进程_取模块地址64Ex 可取出模块内存区域地址大小 新增 特征码搜索Ex 搜索模块 速度更快 只支持无驱动保护的游戏 v1.0 18.9.8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值