码迷,mamicode.com
首页 > 移动开发 > 详细

android 数据文件存取至储存卡

时间:2016-03-05 23:34:37      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

来自:http://blog.csdn.net/jianghuiquan/article/details/8569233

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

    <Button
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存数据(File)" />

    <Button
        android:id="@+id/read"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="读取数据(File)" />

</LinearLayout>  
package com.example.yanlei.wifi;

import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;

public class MainActivity extends AppCompatActivity {

    private Button btnSave=null;
    private Button btnRead=null;
    private File file=null;

    private static final String FILENAME="data.txt";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnSave=(Button)super.findViewById(R.id.save);
        btnRead=(Button)super.findViewById(R.id.read);

        btnSave.setOnClickListener(new OnClickListener(){
            public void onClick(View v)
            {

                PrintStream ps=null;

                //判断外部存储卡是否存在
                if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                    Toast.makeText(getApplicationContext(), "读取失败,SD存储卡不存在!", Toast.LENGTH_LONG).show();
                    return;
                }

                //初始化File
                String path=Environment.getExternalStorageDirectory().toString()
                        +File.separator
                        +"genwoxue"
                        +File.separator
                        +FILENAME;
                file=new File(path);

                //如果当前文件的父文件夹不存在,则创建genwoxue文件夹
                if(!file.getParentFile().exists())
                    file.getParentFile().mkdirs();

                //写文件
                try {
                    ps = new PrintStream(new FileOutputStream(file));
                    ps.println("跟我学网址:www.genwoxue.com");
                    ps.println("");
                    ps.println("电子邮件:hello@genwoxue.com");
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }finally{
                    ps.close();

                }
                Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_LONG).show();
            }
        });

        btnRead.setOnClickListener(new OnClickListener(){
            public void onClick(View v)
            {
                StringBuffer info=new StringBuffer();

                //判断外部存储卡是否存在
                if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                    Toast.makeText(getApplicationContext(), "读取失败,SD存储卡不存在!", Toast.LENGTH_LONG).show();
                    return;
                }

                //初始化File
                String path=Environment.getExternalStorageDirectory().toString()
                        +File.separator
                        +"genwoxue"
                        +File.separator
                        +FILENAME;
                file=new File(path);

                if(!file.exists()){
                    Toast.makeText(getApplicationContext(), "文件不存在!", Toast.LENGTH_LONG).show();
                    return;
                }

                //读取文件内容
                Scanner scan=null;
                try {
                    scan=new Scanner(new FileInputStream(file));
                    while(scan.hasNext()){
                        info.append(scan.next()).append("☆☆☆\n");
                    }
                    Toast.makeText(getApplicationContext(), info.toString(), Toast.LENGTH_LONG).show();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }finally{
                    scan.close();
                }
            }
        });
    }
}

权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yanlei.wifi" >
    <!-- 在SDCard中创建与删除文件权限 -->

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

    <!-- 往SDCard写入数据权限 -->


    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/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>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

android 数据文件存取至储存卡

标签:

原文地址:http://www.cnblogs.com/gisoracle/p/5246152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!