在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. CORS 和 JSONP

    跨域资源共享(CORS) 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制. CORS(Cross-Origin Resource Sharing) ...

  2. Leetcode0002--Add Two Numbers 链表求和

    [转载请注明]http://www.cnblogs.com/igoslly/p/8672467.html 来看一下题目: You are given two non-empty linked list ...

  3. Android媒体解码MediaCodec MediaExtractor学习

    Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用.但是 ...

  4. Android TV 选中高亮显示

    1.开发Android TV APP, 使用遥控器选中按钮或者选着其它菜单 如果没有高亮显示,就看不出选中哪个按钮或者菜单 2.在drawable 添加 border_red.xml 设置选中高亮 & ...

  5. 【SQL】多表查询

    多表查询,即查询可以从两个或多个表中获取数据.在Oracle中,有两种类型的连接格式:ANSI SQL连接格式和Oracle特有的连接格式.Oracle建议采用符合ANSI标准的连接格式. 1.内连接 ...

  6. dotnetnuke 中使用ado.net entityframework 如果在程序中动态调用系统的连接字符串信息

    1,打开如下图的Model1.Context.cs文件 2,找到 Base:(ConnString.conn)是我改的.默认生成的是"name=实体连接字符串" Connstrin ...

  7. Linux下Shell脚本输出带颜色文字

    文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置作用如下: 背景色为蓝色 ...

  8. Windows Live Writer 历史Blog修改的功能

    其实 WLW 有历史Blog修改的功能,我只是一直没有找到,就在打开“最近发布的日志”里面, 位于屏幕的右侧“打开”列表下. 最近发现记忆力越来越差了,BLOG看来是必须的了.

  9. 测试 Zoundry Raven

    安装很方便,看看发布的内容是否好用 但发现从博客上取下来的内容是有问题的,不能正常打开

  10. layui 下拉框取值

    layui.use('form', function () { var form = layui.form; form.on('select(Status)', function (data) { c ...