zoukankan      html  css  js  c++  java
  • SD卡读写 android

    package com.jredu.helloworld.activity;
    
    import android.os.Bundle;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    import com.jredu.helloworld.R;
    import com.jredu.helloworld.entity.SDcard;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    public class SDActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sd); //XML文件没有给出,就是两个按钮
            Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    writetoSD();
                }
            });
            Button button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    readtoSD();
                }
            });
        }
        
        private void writetoSD() {
            ObjectOutputStream oos = null;
            String state = Environment.getExternalStorageState();//获取SD卡状态
            if (state.equals(Environment.MEDIA_MOUNTED)) {  //外部存储正常
                File root = Environment.getExternalStorageDirectory();//获取SD根路径
                File targetdir = new File(root, super.getPackageName());//在根路径下创建子路径
                if (!targetdir.exists()) {
                    targetdir.mkdir();
                }
                try {
                    oos = new ObjectOutputStream(new FileOutputStream(new File(targetdir,"www.txt")));
                    SDcard sDcard = new SDcard("hello word", "by me");
                    oos.writeObject(sDcard);
                    Toast.makeText(SDActivity.this, "读入成功", Toast.LENGTH_SHORT).show();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    try {
                        oos.flush();
                        oos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        private void readtoSD() {    //读和写大致一样
            ObjectInputStream ois=null;
            String state = Environment.getExternalStorageState();
            if (state.equals(Environment.MEDIA_MOUNTED)) {
                File root = Environment.getExternalStorageDirectory();
                File targetdir = new File(root, super.getPackageName());
                if (targetdir.exists()) {
                    try {
                        ois = new ObjectInputStream(new FileInputStream(new File(targetdir,"www.txt")));
                        SDcard sDcard = (SDcard) ois.readObject();
                        Toast.makeText(SDActivity.this,sDcard.getTitle()+sDcard.getContent(), Toast.LENGTH_SHORT).show();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    }finally {
                        try {
                            ois.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }

    注意:

    new File(targetdir,"www.txt")读和写,或+ 要用就要一致。
    还有要关闭输入输出流
  • 相关阅读:
    RequireJS 和 Sea.js
    zoom:1
    font-sqirrel
    WEB前端面试题 分别使用2个、3个、5个DIV画出一个大的红十字
    获取表单select域的选择部分的文本
    写一个简单的form表单,当光标离开表单的时候表单的值发送给后台
    Python3基础 e记法示例
    Python3基础 response.read 输出网页的源代码
    Python3基础 访问在线的有道词典
    Python3基础 response.info 服务器返回的header信息
  • 原文地址:https://www.cnblogs.com/infernofranz/p/5884139.html
Copyright © 2011-2022 走看看