读写SD卡

来源:互联网 发布:乐酷网络网站 编辑:程序博客网 时间:2024/05/17 09:04
package com.example.tyxiong.myapplication;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.EditText;import android.widget.Toast;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;/*** Android的数据存储.前面用到PreferencesActivity存储参数设置...shared_文件.*    少数据可用SharedPreferences File来存储;数据量大用SQL,当然手机不是服务器.** SharedPreferences File SD卡 SQLiteDatabase** SharedPreferences:文件存储位置在data/data/<包>.share_.xml  key-value对*  1 SharePreferences,负责读取其内数据3方法;*  2 Editor,SharedPreferences内部接口,负责向其内写数据,4方法(putxxx()/clear()/remove()/commit())**  使用步骤:4步*   1SharedPreferences对象,Context方法getSharedPreferences(name,mode) 获取指定文件名 对象,3模式(private/../..)*   2Editor对象, SharedPreferences对象 edit()方法.*   3Editor对象 写数据.*   4SharedPreferences读.**File存储. java提供了完整的IO流体系.各种流.字节流/字符流/节点流/处理流/转换流/...**         Context有2方法 openFileOutput()4模式(private/append/....)/openFileInput()---文件流.为两方法仅能打开该context应用程序文件夹文件..*         Context有4方法访问该程序文件夹. 获取根下指定子目录/根下所有文件/删除根下指定文件/根绝对路径*         使用步骤4:*           1 Context的openFileOutput(指定模式4种)方法获得指定文件名对应文件的outStream(*           2 可包装成打印流)写入数据. 写完关闭流.*           3 Context的openFileInput()方法获得文件的输入流,*           4 可包装成处理流(字符处理流)读行),读出数据,关闭流(顶端流.)** 读写SD卡文件: SD卡扩展了手机的存储能力. 使用分为4步:*   1 AndroidManifest.xml中添加权限MOUNT_UNMOUNT_FILESYSTEMS(加入删除文件); WRITE_EXTERNAL_STORAGE(写SD卡)*   2 判断是否存在SD卡且有读写权限 Environment.getExternalStorageStage().equals(Environment.MEDIA_MOUNTED)*   3 Environment.getExternalStorageDirectory();获得Sd卡目录,*   4 获取指定文件流入/流出流进行数据操作...new FileOutputStream()  (无法用openFile...那只针对应用程序路径文件)* 以下为SD过程存储取过程.(与File区别就是 加入写SD卡权限,获取文件流方法不同而已)* */public class MainActivity extends Activity {    EditText text;    private final String MY_FILE = "/myFile1.txt";    PrintStream print;    File storageDirectory;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text = (EditText) findViewById(R.id.textView);    }    public void write(View view) throws FileNotFoundException {        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {            storageDirectory = Environment.getExternalStorageDirectory();            FileOutputStream outStream = null;            try {                outStream = new FileOutputStream(storageDirectory.getCanonicalPath() + MY_FILE, true);            } catch (IOException e) {                e.printStackTrace();            }            print = new PrintStream(outStream);            String str = text.getText().toString();            text.setText("");            print.print(str);            print.close();        }    }    public void read(View view) {        try {            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))            {                StringBuilder sb = new StringBuilder();                // preference.getAll();                FileInputStream inputStream = new FileInputStream(storageDirectory + MY_FILE);                BufferedReader buffer = new BufferedReader(new InputStreamReader(inputStream));                String temp;                while ((temp = buffer.readLine()) != null) {                    sb.append(temp);                }                inputStream.close();                Toast.makeText(MainActivity.this, sb, Toast.LENGTH_SHORT).show();            }        } catch (NullPointerException ex) {            ex.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击