`
hzy3774
  • 浏览: 992352 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Android在SD卡上的文件读写

 
阅读更多

该程序实现将字符串保存到文件,读取文件。

首先要获取外部存储写权限

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

 MainActivity.java

package com.example.sdfiledemo;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.sdfiledemo.R.id;

public class MainActivity extends Activity {

	Button write, read;
	EditText text;
	TextView lable;
	File dir, file;
	FileOutputStream fos;
	FileInputStream fis;
	ByteArrayOutputStream baos;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		write = (Button) findViewById(id.button1);
		read = (Button) findViewById(id.button2);
		text = (EditText) findViewById(id.editText1);
		lable = (TextView) findViewById(id.textView1);

		if (Environment.getExternalStorageState().equals(//查看SD卡是否挂载
				Environment.MEDIA_MOUNTED)) {
			Toast.makeText(MainActivity.this, "SD卡已挂载!", Toast.LENGTH_SHORT)
					.show();
		}

		dir = new File("/mnt/sdcard/mydir");
		file = new File(dir.toString() + "/file.txt");

		if (!dir.exists()) {// 若文件夹不存在,则创建目录
			dir.mkdirs();
			Toast.makeText(MainActivity.this, "mydir文件夹已经创建!",
					Toast.LENGTH_SHORT).show();
		}

		write.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				try {
					fos = new FileOutputStream(file, false);// 不追加
					String str = text.getText().toString();
					// 直接将字节数组写到文件中,文件若不存在会自动创建
					fos.write(str.getBytes());
					fos.close();// 关闭文件输出流

					Toast.makeText(MainActivity.this, "文件已经写入!",
							Toast.LENGTH_SHORT).show();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});

		read.setOnClickListener(new OnClickListener() {

			// 将文件字节读取到字节数组输出流中,以一个字节数组作缓冲
			public void onClick(View v) {
				try {
					fis = new FileInputStream(file);
					byte[] buff = new byte[1024];// 设置一个缓冲
					baos = new ByteArrayOutputStream();
					int len;
					while ((len = fis.read(buff)) != -1) {// 如果buff没有读完
						baos.write(buff, 0, len);// 就将buff内容保存到字节数组输出流中
					}
					byte[] data = baos.toByteArray();// 得到字节数组输出流的数据
					baos.close();// 关闭字节数组输出流
					fis.close();// 关闭文件输出流

					lable.setText(new String(data));// 将读出的内容显示

					Toast.makeText(MainActivity.this, "文件已经读出!",
							Toast.LENGTH_SHORT).show();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}

 布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/editText1"
            android:text="Button" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/linearLayout1"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>

</RelativeLayout>

 

分享到:
评论

相关推荐

    Android SD卡文件读写操作

    本篇文章将详细探讨Android平台上SD卡的文件读写操作,这对于开发者来说是一项基本且重要的技能。 一、Android权限设置 在进行SD卡文件读写之前,首先需要在AndroidManifest.xml文件中声明相应的权限。Android 6.0...

    Android 读写文件实例

    以上就是Android平台上的文件读写操作的基本方法和注意事项。通过了解这些知识,开发者可以有效地在Android设备上存储和读取数据。在实际项目中,还需要结合具体需求,考虑数据安全、文件同步、性能优化等方面的问题...

    android SD卡读写东西Txt文件

    在Android开发中,读写SD卡上的TXT文件是一项常见的需求,尤其是在需要存储或读取大量非结构化数据的应用场景下。根据给定的文件信息,我们可以深入探讨如何在Android应用中实现对SD卡上TXT文件的读写操作,以及相关...

    android文件读写权限

    1. `READ_EXTERNAL_STORAGE`:此权限允许应用读取外部存储(如SD卡)上的文件。在Android 6.0(API级别23)及更高版本中,即使应用在Manifest中声明了该权限,也需要在运行时请求用户授权。 2. `WRITE_EXTERNAL_...

    Android 文件读写操作

    在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...

    android开发实例-sdcard文件读写及WIFI检测

    Android系统允许应用程序在外部存储(通常为SD卡)上进行文件操作。为了读取和写入文件,开发者需要首先获取到SD卡的路径,通常是`Environment.getExternalStorageDirectory()`。这个方法返回一个`File`对象,代表SD...

    文件读写(SD卡文件,及资源文件)

    在Android系统中,文件读写是一项基础且重要的操作,它涉及到对SD卡上的文件和应用程序内部资源文件的处理。理解并掌握文件读写是开发Android应用的必要技能,特别是对于存储用户数据、日志记录或者资源加载等场景。...

    Android应用源码SdCard读写文件实例

    在Android平台上,对SD卡(外部存储)进行读写文件是常见的操作,尤其对于需要存储大量数据或资源的应用来说更是必不可少。本实例将探讨如何在Android应用中实现SdCard的读取和写入功能,这涉及到Android的权限管理...

    android 内存 文件读写操作

    在早期Android版本中,外部存储指的是SD卡,但现在它包括了手机上的公共可读写区域。 二、Environment类 `Environment`类是Android提供的一个系统级类,主要用于获取系统相关的路径,例如根目录、外部存储状态等。...

    Qt移动开发-Android上实现本地文件读写.zip

    在Android中,外部存储通常是指SD卡或设备内置存储的公共区域。可以通过`QStandardPaths`获取合适的存储路径,例如: ```cpp QString externalStoragePath = QStandardPaths::writableLocation(QStandardPaths::...

    android SD卡的读写

    本示例教程将详细解释如何在Android应用中实现SD卡的读写操作,特别是在用户界面(UI)中通过EditText组件进行数据交互。 首先,确保你的AndroidManifest.xml文件中包含了以下权限,这是读写SD卡所必需的: ```xml...

    android SD卡文件浏览器

    在Android平台上,SD卡文件浏览器是一款实用的应用程序,它允许用户查看和管理存储在设备SD卡上的文件和文件夹。这个应用通常具有直观的界面,采用列表视图展示SD卡内容,便于用户浏览、选择、复制、移动或删除文件...

    android 内部存储读写 sd卡存储

    ### Android内部存储与SD卡存储详解 #### 一、Android内部存储概述 在Android开发过程中,数据存储是一项非常重要的功能。对于大多数应用来说,选择合适的数据存储方式是至关重要的。Android提供了多种数据存储的...

    Android中http请求及文件读写操作方法

    Android设备通常有内部存储和外部存储(SD卡)。内部存储用于应用程序私有的数据,外部存储用于共享数据。文件操作需注意权限问题,例如,访问外部存储需要在AndroidManifest.xml中声明`WRITE_EXTERNAL_STORAGE`和`...

    读写SD卡文件的源代码

    在Android系统中,读写SD卡(外部存储)文件是一项常见的任务,对于开发者来说非常重要。本文将详细解析如何使用Java编程语言实现这一功能,并通过分析`FileUtils.java`这个源码文件来深入理解其实现机制。 首先,...

    android sd卡写文件备份

    本篇文章将深入探讨如何在Android上实现SD卡的文件读写操作,以及如何进行文件备份。 首先,我们需要了解Android对SD卡的访问权限。在Android 6.0(API级别23)之前,应用默认拥有写外部存储(如SD卡)的权限。但在...

    内存卡的读写

    3. **API调用**:在编程中,我们通常通过操作系统提供的API(应用程序编程接口)来读写SD卡上的文件。在Windows系统中,可以使用CreateFile、ReadFile和WriteFile等函数;在Linux系统中,可以使用open、read、write...

    android中复制资源文件中的数据库文件到sd卡或内存源码

    综上所述,要在Android应用中实现将资源文件中的数据库复制到SD卡或内存,需要正确配置AssetManager,确定目标路径,复制文件,并处理好相关的权限问题。这个过程对于那些需要预加载数据库的应用至关重要,能有效...

    Android 之 将RAW资源文件写入SD卡工具类

    在Android开发中,有时我们需要将应用内部的RAW资源文件复制到外部存储(如SD卡)以便于用户访问或保存数据。这个"Android之将RAW资源文件写入SD卡工具类"是一个实用的功能,可以帮助开发者轻松完成这个任务。下面将...

Global site tag (gtag.js) - Google Analytics