一、用Environment

(写)

1、API获取sdcard的路径

  File path=Environment.getExternalStorageDirectory();

  path=new File(path,"test.txt");

2、用流写入内容

3、获取WRITE_EXTERNAL_STORAGE权限

写入后的文件夹是:/mnt/sdcard/文件名及后缀

 package com.zzw.writeFile;

 import java.io.File;
import java.io.FileOutputStream; import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); try {
writeFileToSDCard("Test", "Test.txt", "hello");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} private boolean writeFileToSDCard(String file_pathName, String fileName, String writeData) throws Exception {
// SDCard是否被挂载
if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
// 获取根目录
File parent_path = Environment.getExternalStorageDirectory();
Log.d(TAG, "parent_path=" + parent_path.getAbsolutePath() + ""); // 建立一个子目录专门存放自己的专属文件
File file_path = new File(parent_path.getAbsoluteFile(), file_pathName);
if (!file_path.exists()) {
file_path.mkdir();
}
Log.d(TAG, "file_path=" + file_path.getAbsolutePath() + ""); // 自己的要存放的文件目录
File file = new File(file_path.getAbsoluteFile(), fileName);
if (!file.exists()) {
file.createNewFile();
Log.d(TAG, "创建文件" + fileName + "成功");
}
Log.d(TAG, "文件" + fileName + "存在,原文件将被置换");
Log.d(TAG, "file=" + file.getAbsolutePath() + ""); // 写文件
FileOutputStream fos = new FileOutputStream(file); byte[] buffer = writeData.getBytes(); fos.write(buffer, 0, buffer.length);
fos.flush();
if (fos != null) {
fos.close();
} Log.d(TAG, "文件写入成功");
return true; }
return false;
}
}

Environment

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

权限操作

(读)

同样的通过IO操作,注意权限

二、获取shared_prefs目录,读写xml。使用SharedPreferences

写入目录:data/data/包名/shared_prefs/文件名.xml

1、获取SharedPreferences

  SharedPreferences shared

  =context.getSharedPreferences("xml名字",context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE);//后者为权限

2、得到Editor(编辑器)

  Editor edit=shared.edit();

3、放入数据

          (K,V)

  edit.putString("hello","world");

  //获取我们保存的信息:shared.getString(key, defValue);

4、提交编辑内容

  edit.commit();

5、获得权限

 package com.zzw.testsharedpreferences;

 import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private final String SharedPreferences_Name = "SharedPreferences_Name";
private final String USER_NAME = "user_name";
private final String USER_PASSWORD = "user_password"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
writeSharedPreferences();
readSharedPreferences();
} private void writeSharedPreferences() {
SharedPreferences shared = this.getSharedPreferences(SharedPreferences_Name, MODE_PRIVATE); Editor edit = shared.edit();
edit.putString(USER_NAME, "张三");
edit.putString(USER_PASSWORD, "123456");
edit.commit();
} private void readSharedPreferences() {
SharedPreferences shared = this.getSharedPreferences(SharedPreferences_Name, MODE_PRIVATE); String name = shared.getString(USER_NAME, "no_name");
String pass_word = shared.getString(USER_PASSWORD, "");
Log.d(TAG, "USER_NAME" + name + ",USER_PASSWORD:" + pass_word);
}
}

SharedPreferences

往Android SDCard中读写入数据的更多相关文章

  1. android 向SD卡写入数据

    原文:android 向SD卡写入数据 1.代码: /** * 向sdcard中写入文件 * @param filename 文件名 * @param content 文件内容 */ public v ...

  2. C# 操作地址 从内存中读取写入数据(初级)

    本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是  CE. 由于每次启动游戏, 游戏中阳光 ...

  3. pandas向表格中循环写入数据

    pandas向表格中循环写入多行数据 import pandas as pd def list_topic(total_num, str1): """ 生成多个主题 :p ...

  4. 使用bulkload向hbase中批量写入数据

    1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M r ...

  5. Android开发中多进程共享数据

    # 背景 最近在工作中遇到一个需求,需要在接收到推送的时候将推送获得的数据存起来,以供app启动时使用.我们会认为这不是So easy吗?只要把数据存到SharedPreferences中,然后让ap ...

  6. android开发中获取<meta-data>数据

    在 AndroidManifest.xml 中,<meta-data>元素是一个键值对,往往被包含在<application> .<activity>.<se ...

  7. android sqlite 中存储 long 数据

    在資料庫的技術中,一個資料庫(Database)表示應用程式儲存與管理資料的單位,應用程式可能需要儲存很多不同的資料,例如一個購物網站的資 料庫,就需要儲存與管理會員.商品和訂單資料.每一種在資料庫中 ...

  8. Android ListView中带有时间数据的排序

    下面是activity: public class MainActivity extends Activity { private ListView mListView = null; private ...

  9. C语言:用字符读取流和输出流来读写入数据。(文本文件)

    /* 文件的几种操作模式: r:只读   w:只写   rw:可读可写 文件的分类: t:文本文件(字符文件)   b:二进制文件(字节文件) 注意: 采用只读方式打开文件时,如果源文件不存在,打开文 ...

随机推荐

  1. [ACDream 1430]SETI 后缀数组

    题目链接:http://acdream.info/problem?pid=1430 题目大意:给你一个长度不超过10000的字符串,问你出现过两次或两次以上的不重叠的子串有多少个. 后缀数组计算出he ...

  2. nginx/Windows-1.9.0的日志分割

    @echo offrem @echo off rem 取1天之前的日期echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vb ...

  3. TestCase--网站注册模块

    对于web测试,注册模块是必测的一个点,所以今天就来总结一下注册模块的测试用例 参考京东的注册页面 测试用例设计如下: 一.功能测试 1.  单击“免费注册”,页面是否正常跳转 2.  直接访问注册页 ...

  4. NAT学习笔记

    NAT介绍 NAT, 全称网络地址转换(Network Address Translation),是一种在IP封包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术. NAT的分类及介绍 NAT ...

  5. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  6. 免费的API接口

    有如下三个Json格式的查询天气预报接口: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/dat ...

  7. js实现简单的滑动门和tab选项卡

    思想:首先定义三个选项卡,可以用任何标签,只要如下图, 一共有三个ul,第一个ul给一个class,因为默认第一个选项卡的内容显示出来, 其他两个ul  display:none: 当我鼠标移到第二个 ...

  8. UVa11210 中国麻将 Chinese Mahjong-搜索

    https://vjudge.net/problem/UVA-11210 //被水题虐了一上午... #include<iostream> #include<cstdio> # ...

  9. 【drp 9】Servlet生命周期

    一.基本概念 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet ...

  10. android ios 只能輸入數字 不能輸入小數點的 函數 cordova

    andriod function numericsonly(ob) { var invalidChars = /[^0-9]/gi if (invalidChars.test(ob.value)) { ...