在android中读写文件

android中只有一个盘,正斜杠/代表根目录。

我们常见的SDK的位置为:/mnt/sdcard

两种最常见的数据存储方式:

一、内存

二、本地

  1.手机内部存储

  2.外部存储设备(SD卡)

在SD卡中读数据是不需要权限的,但是在SD卡中写数据是要权限的:

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

读写文件的方式就是用的Java的文件输入流和输出流,和在java中读写文件的方法几乎一模一样。

代码:

com.example.readwrite.MainActivity

 package com.example.readwrite;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log; /**
* 正斜杠代表根目录 两种最常见的数据存储方式
*
* 一、内存 二、本地 1.手机内部存储 2.外部存储设备(SD卡)
* */
public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// existSDcard();
// write();
// listPath();
read();
} private void write() {
// /mnt/sdcard
File file = Environment.getExternalStorageDirectory();
FileOutputStream out = null;
try {
out = new FileOutputStream(file.getPath() + "/bihu.txt");
// out = new FileOutputStream(
// "/data/data/com.example.readwrite/bihu.txt");
out.write("12345".getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} private void read() {
FileInputStream in = null;
try {
// in = new FileInputStream("/mnt/sdcard/bihu.txt");
in = new FileInputStream(
"/data/data/com.jiguang.test/databases/rep.db");
byte[] bytes = new byte[2014];
int len = in.read(bytes);
String str = new String(bytes, 0, len);
Log.d("bihu", "---------" + str);
} catch (IOException e) {
Log.d("bihu","报错啦"+e.toString());
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} /**
* 检查SD卡是否被挂载
* */
private void existSDcard() {
// 获取SD卡的状态
String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) {
Log.d("bihu", "有SD卡");
} else {
Log.d("bihu", "没有SD卡");
}
} /**
* 通过API获取路径
* */
private void listPath() {
// 获取SD卡目录
File file1 = Environment.getExternalStorageDirectory();
Log.d("bihu", "sd卡----" + file1.getPath());
// 获取手机内部存储空间的file目录
File file2 = getFilesDir();
Log.d("bihu", "内部存储File----" + file2.getPath());
// 获取内部存储空间的缓存目录
File file3 = getCacheDir();
Log.d("bihu", "内部存储缓存目录----" + file3.getPath());
}
}

主界面

/读写本地文件/AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.readwrite"
android:versionCode="1"
android:versionName="1.0" > <!-- 在外部设备(SD卡)上写入的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

配置文件

在android中读写文件的更多相关文章

  1. Android简易实战教程--第十五话《在外部存储中读写文件》

    第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意 ...

  2. Android 怎样在linux kernel 中读写文件

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. Android中的文件读写总结

    在Android中,文件主要分为两大类,内部存储和外部存储 内部存储的文件是程序私有的,分为普通文件和Cache文件 外部文件也可以是私有的,也可以是共有的,这要根据文件的目录位置来决定 共有文件可以 ...

  4. android中的文件(图片)上传

    android中的文件(图片)上传其实没什么复杂的,主要是对 multipart/form-data 协议要有所了解. 关于 multipart/form-data 协议,在 RFC文档中有详细的描述 ...

  5. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  6. 【转】 Linux内核中读写文件数据的方法--不错

    原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法  有时候需要在Linuxkernel--大 ...

  7. Android中获取文件路径的方法总结及对照

    最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...

  8. PHP中读写文件

    在PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: 复制代码代码如下:fopen(filename,mode) filename,规定要打开的文件.mode,打开 ...

  9. Android中的文件权限操作

    默认本工程创建的文件本工程对其有读写权限. 我们可以通过context.openFileOutput("文件名", 模式): 我们可以创建私有, 共有, 只读, 只写文件, 默认的 ...

随机推荐

  1. springMVC上传图片,json交互(三)

    @RequestMapping 通过@RequestMapping注解可以定义不同的处理器映射规则. @RequestMapping(value="item")或@RequestM ...

  2. elasticsearch性能调优

    转载 http://www.cnblogs.com/hseagle/p/6015245.html 该es调优版本可能有低,但是思想主体不变,不合适的参数可以自己找最新的版本相应的替代,或者增删 ela ...

  3. Eclipse 每次ctrl-c ctrl-v 就变慢?

    继续闲着,所以继续写 大小: 60.7 KB 查看图片附件

  4. PHP中的魔术方法和魔术常量

    看上去好像挺烦人,但只要通过例子测试一下,就明白了.不做测试,只是看,第二天还是不明白.当然我在抄其他人的日志,然后希望能是自己的理解就好,原文地址PHP的魔术方法和魔术敞亮简介和使用--LaraBo ...

  5. jquery对象与DOM对象的转化(简化版):

    1:DOM对象 var apple = document.getElementById('apple'); 2:jquery对象 var _apple = $('#apple'); 3:DOM对象=& ...

  6. android黑科技系列——Apk混淆成中文语言代码

    一.前言 最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示: 瞬间感觉懵逼了,这app真会玩,我们知道因为Ja ...

  7. 控件中出现的e.xxxx之类的

    在遇到窗体应用程序开发的时候,会在控件事件的后台写一些代码,特别是带e.xxx什么的 C#中的Graphics g = e.Graphics是什么意思? 解释是: Graphics 这个类,比较特殊, ...

  8. MYSQL 45道练习题

    学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用S ...

  9. 国内DNS服务器地址

    114DNS114.114.114.114114.114.115.115 腾讯119.29.29.29 百度180.76.76.76 阿里223.5.5.5223.6.6.6 [THE END]

  10. react基础篇四

    列表 & Keys 渲染多个组件 你可以通过使用{}在JSX内构建一个元素集合 下面,我们使用Javascript中的map()方法遍历numbers数组.对数组中的每个元素返回<li& ...