在android中读写文件

在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

  1 package com.example.readwrite;
  2
  3 import java.io.File;
  4 import java.io.FileInputStream;
  5 import java.io.FileOutputStream;
  6 import java.io.IOException;
  7
  8 import android.app.Activity;
  9 import android.os.Bundle;
 10 import android.os.Environment;
 11 import android.util.Log;
 12
 13 /**
 14  * 正斜杠代表根目录 两种最常见的数据存储方式
 15  *
 16  * 一、内存 二、本地 1.手机内部存储 2.外部存储设备(SD卡)
 17  * */
 18 public class MainActivity extends Activity {
 19
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_main);
 24         // existSDcard();
 25         // write();
 26 //        listPath();
 27         read();
 28     }
 29
 30     private void write() {
 31         // /mnt/sdcard
 32         File file = Environment.getExternalStorageDirectory();
 33         FileOutputStream out = null;
 34         try {
 35             out = new FileOutputStream(file.getPath() + "/bihu.txt");
 36             // out = new FileOutputStream(
 37             // "/data/data/com.example.readwrite/bihu.txt");
 38             out.write("12345".getBytes());
 39         } catch (IOException e) {
 40             e.printStackTrace();
 41         } finally {
 42             if (out != null) {
 43                 try {
 44                     out.close();
 45                 } catch (IOException e) {
 46                     // TODO Auto-generated catch block
 47                     e.printStackTrace();
 48                 }
 49             }
 50         }
 51     }
 52
 53     private void read() {
 54         FileInputStream in = null;
 55         try {
 56             // in = new FileInputStream("/mnt/sdcard/bihu.txt");
 57             in = new FileInputStream(
 58                     "/data/data/com.jiguang.test/databases/rep.db");
 59             byte[] bytes = new byte[2014];
 60             int len = in.read(bytes);
 61             String str = new String(bytes, 0, len);
 62             Log.d("bihu", "---------" + str);
 63         } catch (IOException e) {
 64             Log.d("bihu","报错啦"+e.toString());
 65         } finally {
 66             if (in != null) {
 67                 try {
 68                     in.close();
 69                 } catch (IOException e) {
 70                     e.printStackTrace();
 71                 }
 72             }
 73         }
 74     }
 75
 76     /**
 77      * 检查SD卡是否被挂载
 78      * */
 79     private void existSDcard() {
 80         // 获取SD卡的状态
 81         String state = Environment.getExternalStorageState();
 82
 83         if (Environment.MEDIA_MOUNTED.equals(state)) {
 84             Log.d("bihu", "有SD卡");
 85         } else {
 86             Log.d("bihu", "没有SD卡");
 87         }
 88     }
 89
 90     /**
 91      * 通过API获取路径
 92      * */
 93     private void listPath() {
 94         // 获取SD卡目录
 95         File file1 = Environment.getExternalStorageDirectory();
 96         Log.d("bihu", "sd卡----" + file1.getPath());
 97         // 获取手机内部存储空间的file目录
 98         File file2 = getFilesDir();
 99         Log.d("bihu", "内部存储File----" + file2.getPath());
100         // 获取内部存储空间的缓存目录
101         File file3 = getCacheDir();
102         Log.d("bihu", "内部存储缓存目录----" + file3.getPath());
103     }
104 }

主界面

/读写本地文件/AndroidManifest.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.readwrite"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6
 7     <!-- 在外部设备(SD卡)上写入的权限 -->
 8     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 9
10     <uses-sdk
11         android:minSdkVersion="8"
12         android:targetSdkVersion="19" />
13
14     <application
15         android:allowBackup="true"
16         android:icon="@drawable/ic_launcher"
17         android:label="@string/app_name"
18         android:theme="@style/AppTheme" >
19         <activity
20             android:name=".MainActivity"
21             android:label="@string/app_name" >
22             <intent-filter>
23                 <action android:name="android.intent.action.MAIN" />
24
25                 <category android:name="android.intent.category.LAUNCHER" />
26             </intent-filter>
27         </activity>
28     </application>
29
30 </manifest>

配置文件

时间: 2024-10-14 00:24:07

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

Android中的文件读写全面总结

转载请注明出处:http://blog.csdn.net/bettarwang/article/details/41625187 在深入分析Java中的I/O类的特征及适用场合 一文中,我详细介绍了Java中的I/O,但是,如果以为Android中的I/O与Java中一样,那就大错特错了.实际上,它们有一定的相同之外,但更多的是区别,因为Android系统中的文件存放位置不同,读取方式也不一样.下面将详细介绍Android中的文件读写: 一.资源文件的读取,不需要在Manifest文件中添加权限

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

第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意这个问题 因此把文件保存到sd卡中.即今天所写的  第十五话<在外部存储中读写文件> 首先布局文件和第七话一样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:

Android 存储学习之在外部存储中读写文件

上节学习了如何在手机内部存储中读写文件,本节学习如何在手机的外部存储中读写文件.那就是如何在Sdcard中读写文件. 那我们还是用以前登录界面的例子举例说明,(登录界面请看上节Android 存储学习之在内部存储中读写文件) 先我们显示写的代码: 当点击确定并且自动登录的钩是选中的,则就会在sdcard文件夹写创建一个info.txt文件 public void login(View v) { String name = ed_nam.getText().toString(); String p

Android 如何在linux kernel 中读写文件

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 如何在linux kernel 中读写文件 [Keyword] linux kernel read write file 读写文件 [Solution] 通常我们只会在linux native/app 层 读写文件,但可能有一些非常特别的情况下,我们需要直接在

Android 存储学习之在内部存储中读写文件

大家都知道,在实际工作中开发,进场需要将一个文件写入到手机的存储中.既然说到手机的存储空间,那就先说说手机的存储空间分类: 1: 内部存储空间 RAM内存: 也就是手机的运行的内存,相当于电脑的内存 ROM内存: 也就是手机的存储内存,相当于电脑的硬盘 2: 外部存储空间 也就是可插拔的SD卡,相当于电脑的移动硬盘,U盘等. 既然手机存储分为两类,那我们先看看如何在手机的内部存储中读写文件. 那我们引入一个实际中很常见的例子: 一般带登录界面的,都需要将用户的信息保存到本地.我们就用上面的例子演

Android 怎样在linux kernel 中读写文件

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 怎样在linux kernel 中读写文件 [Keyword] linux kernel read write file 读写文件 [Solution] 通常我们仅仅会在linux native/app 层 读写文件,但可能有一些很特别的情况下,我们须要直接在

Android中的文件读写总结

在Android中,文件主要分为两大类,内部存储和外部存储 内部存储的文件是程序私有的,分为普通文件和Cache文件 外部文件也可以是私有的,也可以是共有的,这要根据文件的目录位置来决定 共有文件可以用JAVA的文件处理方法来处理,但是内部文件必须用openfileinput或者openfileoutput来进行打开和关闭 在对SD卡上的文件进行操作之前需要先检查SD卡的状态(是否可读写,可访问等)

Android中的文件权限操作

默认本工程创建的文件本工程对其有读写权限. 我们可以通过context.openFileOutput("文件名", 模式): 我们可以创建私有, 共有, 只读, 只写文件, 默认的文私有文件. 如果别的Android工程访问本工程的文件的话就会受限制, android的内核是linux, 所以他的文件管理和linux中的文件时一样的. 创建文件代码: /** * 创建各种文件 * @throws IOException * */ @SuppressLint({ "WorldW

[笨木头Unity3D]杂记003&#183;Unity在Android中读取文件

这周被一个问题给折腾了几个晚上,那就是在Android中读取文件,这本是一件很简单的事情,可想象总是美好的. 笨木头花心贡献,啥?花心?不,是用心. 转载请注明,原文地址:http://www.benmutou.com/archives/2094 文章来源:笨木头与游戏开发 1.在电脑上读取文件 首先要解决的当然是在电脑上读取文件了,这个并不难,网上一堆资料. 比如: public static string LoadFile(string filePath) { string url = Ap