`
dcj3sjt126com
  • 浏览: 1881980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android第五个功能:文件存储到SDCard上面

阅读更多

 

核心代码四部分:

1、Layout

2、String值

3、MainActivity

4、给项目添加使用授权

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/filename" 
        />
    
    <EditText 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/filename"
        />
    
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/filecontent" 
        />
    
    <EditText 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:minLines="3"
        android:id="@+id/filecontent"
        />
    
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button"
        android:id="@+id/button"
        />

</LinearLayout>

 

package com.dcj.service;

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

import android.content.Context;
import android.os.Environment;

public class FileService {
	private Context context;
	public FileService(Context applicationContext) {
		context = applicationContext;
	}
	
	public void saveToSDCard(String filename, String content) throws Exception {
		File file = new File(Environment.getExternalStorageDirectory(), filename);
		FileOutputStream outStream = new FileOutputStream(file);
		outStream.write(content.getBytes());
		outStream.close();
		
	}
	
	/**
	 * 保存文件
	 * @param filename 文件名称
	 * @param content 文件内容
	 * @throws Exception 
	 */
	public void save(String filename, String content) throws Exception {
		// IO j2se
		//私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作创建的文件,写入文件会覆盖原文件内容
		FileOutputStream outStream = context.openFileOutput(filename, context.MODE_PRIVATE);
		outStream.write(content.getBytes());
		outStream.close();
	}
	
	/**
	 * 读取文件内容
	 * @param filename 文件名称
	 * @return 文件内容
	 * @throws Exception
	 */
	public String read(String filename) throws Exception  {
		FileInputStream inStream = context.openFileInput(filename);
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = 0;
		while ((len = inStream.read(buffer)) != -1) {
			outStream.write(buffer, 0, len);
		}
		byte[] data = outStream.toByteArray();
		return new String(data);
	}

}

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dcj"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
	     <uses-library android:name="android.test.runner" />
        <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>

     <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.dcj" 
        android:label="Test for my App"/>
     
     <!-- 在SDCard中创建与删除文件权限 -->
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
<!-- 往SDCard写入数据权限 -->
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">存储到程序内部</string>
	<string name="filename">文件名称</string>
	<string name="filecontent">文件内容</string>
	<string name="button">保存</string>
	<string name="success">保存完成</string>
	<string name="fail">保存失败</string>
	<string name="sdcarderror">SDCard不存在或者写保护</string>	
</resources>

 

package com.dcj;

import com.dcj.service.FileService;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.SimpleAdapter.ViewBinder;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new ButtonClickListener());
    }
    
    private final class ButtonClickListener implements View.OnClickListener {
		
    	public void onClick(View v) {
    		EditText filenameText = (EditText) findViewById(R.id.filename);
    		EditText contentText = (EditText) findViewById(R.id.filecontent);
    		String filename = filenameText.getText().toString();
    		String content = contentText.getText().toString();
    		
    		FileService service = new FileService(getApplicationContext());
    		try {
				//service.save(filename, content);
    			//换成保存到SDCard上面
    			//判断SDCard是否存在,并且可以读写
    			if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    				service.saveToSDCard(filename, content);
    				Toast.makeText(getApplicationContext(), R.string.success, 1).show();
    			}else{
    				Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show();
    			}
			} catch (Exception e) {
				Toast.makeText(getApplicationContext(), R.string.fail, 1).show();
				e.printStackTrace();
			}
		}
    }
}

 

 

分享到:
评论

相关推荐

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

    本实例将探讨如何在Android应用中实现SdCard的读取和写入功能,这涉及到Android的权限管理、文件操作API以及外部存储的相关知识。 1. **权限管理**: 在AndroidManifest.xml文件中,你需要添加`READ_EXTERNAL_...

    android读取sdcard的txt文件,翻书的效果

    在Android平台上,开发一款应用来实现从SDCard中读取TXT文件并展示为翻书效果,需要涉及到多个技术层面。以下将详细介绍这个过程中的关键知识点: 1. **Android权限管理**: 在Android中,访问外部存储(如SDCard...

    android在Sdcard中上传中文文件镜像

    在Android系统中,将中文文件镜像上传到SD卡是一个常见的需求,特别是在处理系统更新、应用安装或数据备份时。本文将深入探讨如何在Android设备上实现这一操作,重点介绍与"android"、"镜像"、"中文"以及"UltraISO...

    手机apk拷贝到sdcard

    标题“手机apk拷贝到sdcard”涉及到的是Android操作系统中移动应用程序(APK)的存储管理,特别是如何将APK文件从设备的内部存储移动到外部可移除的SD卡上。这一操作对于用户来说,可能是因为他们希望节省手机内部...

    android项目中读取ini配置文件

    在Android应用开发中,有时我们需要将一些系统配置信息存储在外部文件中,以方便管理和更新。在这种情况下,`ini`文件格式是一个常见的选择,因为它的结构简单,易于读写。本文将详细介绍如何在Android项目中读取...

    android显示sdcard上的图片

    综上所述,"android显示sdcard上的图片"这一主题涵盖了Android系统中的文件访问、图片解析、内存管理、UI显示、异步处理等多个技术环节。通过熟练掌握这些知识点,开发者可以构建出高效且用户友好的图片显示功能。在...

    android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来

    综上所述,"android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来"这个过程涉及了网络请求、文件操作、图片缓存、异步处理、UI显示优化等多个技术点,需要综合运用多种Android开发技巧和第三方库。...

    Android文件访问权限(第一个)

    它涉及到应用程序如何安全地读取、写入或执行存储在设备上的文件。Android的安全模型基于Linux内核,因此,文件权限遵循典型的Unix-like权限模型,但还有一些额外的Android特有的权限管理机制。 在Android中,文件...

    android实现简单的文件浏览

    在Android平台上,实现一个简单的文件浏览功能涉及到许多关键知识点,主要涵盖了文件系统操作、文件过滤、用户界面设计以及权限管理等方面。以下是对这些知识点的详细解释: 1. **Android文件系统**:Android设备上...

    扫描sdcard卡文本文件

    在Android系统中,"扫描sdcard卡文本文件"是一个常见的任务,主要涉及到文件系统的操作、权限管理以及文本处理。在Android应用开发中,这通常意味着你需要编写代码来查找并读取存储卡(即sdcard)上的.txt或其他文本...

    Android4.0下使用framebuffer抓屏并保存成bmp文件

    在Android 4.0(Ice Cream Sandwich)版本中,开发者可以通过访问framebuffer来实现屏幕抓取功能,即获取当前屏幕的图像并保存为图像文件,如BMP格式。下面我们将详细讨论如何在Android 4.0下使用framebuffer抓屏并...

    Android数据存储(内置sdcard3)

    "Android数据存储(内置sdcard3)"这个主题聚焦于Android设备上内部存储空间的第三部分,通常称为内部SD卡或者emulated storage。在Android中,内部存储被划分为不同的分区,为不同类型的数据提供存储空间。 内部SD...

    android实现SDcard浏览器

    在Android平台上,开发一个SD卡浏览器是一个非常实用的练习,尤其对初学者而言,它可以深入理解文件系统和用户界面设计。下面将详细讲解如何实现这样一个应用,并涉及相关的Android知识点。 首先,我们需要理解...

    应用源码SdCard读写文件实例.zip

    本资源“应用源码SdCard读写文件实例.zip”提供了具体的示例代码,可以帮助开发者深入理解如何在Android应用程序中实现这个功能。以下是相关知识点的详细解释: 1. **Android权限管理**: 在Android 6.0(API级别...

    Android文件管理器

    3. 使用第三方管理器:虽然Android系统自带基本的文件管理功能,但第三方文件管理器如ES文件管理器、Solid Explorer等通常提供更丰富的功能和更好的用户体验。 4. 注意权限:修改系统文件前需获取Root权限,否则可能...

    Android FileManager文件管理器源码

    Android系统采用Linux内核,因此它的文件系统遵循POSIX标准,主要由以下几个部分组成:根目录(/)、data分区、cache分区、sdcard(外部存储)等。其中,data分区存储应用程序的数据和设置,cache分区用于缓存数据,...

    如何解包/编辑/打包android系统的boot.img文件

    Android 手机的文件系统由多个存储器组成,每个存储器都有其特定的功能和用途。在 Android 系统中,我们可以使用 `cat /proc/mtd` 命令来查看当前手机的存储器信息。例如: mtd0: 00040000 00020000 "misc" mtd1: ...

    MIUI文件管理器android源码

    了解Android文件系统的目录结构,如/data、/system、/sdcard(或外部存储)等,对理解文件管理器的工作至关重要。 2. **MIUI系统定制**:MIUI是小米对Android系统进行深度定制的界面,包含大量特色功能。MIUI文件...

    安卓Android源码——MIUI文件管理器.zip

    【安卓Android源码——MIUI文件管理器】 ...通过深入研究这个源码,开发者不仅可以提升对Android系统和MIUI的理解,还能学习到如何构建高效、易用的文件管理应用,为自己的项目提供灵感和实践参考。

Global site tag (gtag.js) - Google Analytics