往Android SDCard中读写入数据
一、用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中读写入数据的更多相关文章
- android 向SD卡写入数据
原文:android 向SD卡写入数据 1.代码: /** * 向sdcard中写入文件 * @param filename 文件名 * @param content 文件内容 */ public v ...
- C# 操作地址 从内存中读取写入数据(初级)
本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是 CE. 由于每次启动游戏, 游戏中阳光 ...
- pandas向表格中循环写入数据
pandas向表格中循环写入多行数据 import pandas as pd def list_topic(total_num, str1): """ 生成多个主题 :p ...
- 使用bulkload向hbase中批量写入数据
1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M r ...
- Android开发中多进程共享数据
# 背景 最近在工作中遇到一个需求,需要在接收到推送的时候将推送获得的数据存起来,以供app启动时使用.我们会认为这不是So easy吗?只要把数据存到SharedPreferences中,然后让ap ...
- android开发中获取<meta-data>数据
在 AndroidManifest.xml 中,<meta-data>元素是一个键值对,往往被包含在<application> .<activity>.<se ...
- android sqlite 中存储 long 数据
在資料庫的技術中,一個資料庫(Database)表示應用程式儲存與管理資料的單位,應用程式可能需要儲存很多不同的資料,例如一個購物網站的資 料庫,就需要儲存與管理會員.商品和訂單資料.每一種在資料庫中 ...
- Android ListView中带有时间数据的排序
下面是activity: public class MainActivity extends Activity { private ListView mListView = null; private ...
- C语言:用字符读取流和输出流来读写入数据。(文本文件)
/* 文件的几种操作模式: r:只读 w:只写 rw:可读可写 文件的分类: t:文本文件(字符文件) b:二进制文件(字节文件) 注意: 采用只读方式打开文件时,如果源文件不存在,打开文 ...
随机推荐
- nyoj 70 阶乘因式分解(二)
点击打开链接 阶乘因式分解(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解 ...
- java常用面板
public class JPanelTest extends JFrame{ public JPanelTest(){ Container c=getContentPane(); ...
- SHARED_POOL_RESERVED_SIZE参数的设置及作用 -ZHUANZAI
还有一个参数是需要提及的:shared_pool_reserved_size.该参数指定了保留的共享池空间,用于满足将来的大的连续的共享池空间请求.当共享池出现过多碎片,请求大块空间会导致Oracle ...
- JAVA的JDBC连接与sql操作
一.前言 本文主要介绍怎样连接数据库.即JDBC的操作.以MySQL为例子. 前提是首先要将驱动jar包放入对应路径中. 二.过程说明 1.加载jdbc驱动程序 <span style=&quo ...
- 互联网行业都缺前端工程师-最高offer薪水38k*16
摘要:现在,几乎整个互联网行业都缺前端工程师,不仅在刚起步的创业公司,对上市公司乃至巨头这个问题也一样存在.没错,优秀的前端工程师简直比大熊猫还稀少. 现在,几乎整个互联网行业都缺前端工程师,不仅在刚 ...
- Deviceone:站在移动互联时代的十字路口上
最近总能看到类似“App已死,服务永生”.“App必死,web永生” .“App已死,微信建站已生”这样的文章.不晓得这些网络写手到底是想代表某些公司的立场.还是想要表达怎么样的一个情结,文章中语气都 ...
- 压缩上传并预览 flash
最近研究一个功能:用as3写的上传图片并实现预览.觉得花了很多时间也学到很多知识,将自己的所得记录下来供大家分享. 首先是预览功能的实现,大家自然而然就想到了loader来加载图片并显示,由于项目没有 ...
- 多线程(二)NSThread
一.NSThread优缺点 优点:NSThread是最轻量级的 缺点:需要自己管理线程的生命周期,线程同步.线程同步对数据的加锁会有一定的系统开销 二.NSThread的使用 ...
- javascript各种兼容性问题,不断更新
ie6-ie8 不支持textContent支持innerTextchrome 支持textContent innerTextfireFox 仅支持textContent不支持innerTe ...
- mysql中-e用法
实际应用中,不仅可以先登陆mysql再使用,还可以在链接的时候进行sql操作,此时需要加参数-e 例: >mysql -hlocalhost -P8080 -uroot -p123456 -e' ...