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")读和写,或+ 要用就要一致。
    还有要关闭输入输出流
  • 相关阅读:
    SCI写作经典替换词,瞬间高大上!(转)
    最佳化常用测试函数 Optimization Test functions
    算法复杂度速查表
    VS 代码行统计
    CPLEX IDE 菜单栏语言设置( 中文 英文 韩文 等多国语言 设置)
    如何从PDF文件中提取矢量图
    Matlab无法打开M文件的错误( Undefined function or method 'uiopen' for input arguments of type 'char)
    visual studio 资源视图 空白 解决方案
    MFC DialogBar 按钮灰色不响应
    嗨翻C语言笔记(二)
  • 原文地址:https://www.cnblogs.com/infernofranz/p/5884139.html
Copyright © 2011-2022 走看看