博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——课堂整理:assets目录和手机外部存储
阅读量:5038 次
发布时间:2019-06-12

本文共 3988 字,大约阅读时间需要 13 分钟。

layout文件:

1  6     
11
16
21

java类:

1 //保存资产文件到内部存储  2     public void bt4_onClick(View v)  3     {  4         try {  5             //操作assets目录的文件  6             //1.得到assetsManager  7             AssetManager am = getAssets();  8             //2.操作资产目录,边读边写入  9             //1)读文件到内存 inputstream 10             InputStream is = am.open("yuantu.png"); 11             //2)写文件到目录 outputstream 12             FileOutputStream fos = openFileOutput("test.png",MODE_PRIVATE); 13             //先读后写 14             byte[] b = new byte[1024]; 15             int i = 0; 16             while ((i = is.read(b))>0) 17             { 18                 fos.write(b,0,i); 19             } 20             fos.close(); 21             is.close(); 22             Toast.makeText(MainActivity.this, "保存文件成功", Toast.LENGTH_SHORT).show(); 23         } 24         catch (Exception e) 25         { 26             Toast.makeText(MainActivity.this, "保存文件出错", Toast.LENGTH_SHORT).show(); 27         } 28  29     } 30     //设置图片指向内部存储 31     public void bt5_onClick(View v) 32     { 33         //1.得到文件路径 34         String path = getFilesDir().getAbsolutePath()+"/test.png"; 35         Toast.makeText(MainActivity.this, "path = "+path, Toast.LENGTH_SHORT).show(); 36         //2.从内部存储的图片得到Bitmap,BitmapFactory.decodeFile("文件路径"); 37         Bitmap bm = BitmapFactory.decodeFile(path); 38         //3.设置图片视图的图片来源 39         iv_1.setImageBitmap(bm); 40     } 41     //写入外部存储文件 42     public void bt6_onClick(View v) 43     { 44         //1.判断SD卡是否挂载 45         if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 46         { 47             //得到文本框内容 48             String str = et_1.getText().toString(); 49             try { 50                 //写入 51                 //1.构造输出流 52                 //1)得到文件路径 53                 //得到SD卡根目录 54                 String path = Environment.getExternalStorageDirectory().getAbsolutePath(); 55  56                 //得到包名对应的目录 57 //                String path = getExternalFilesDir("Music").getCanonicalPath(); 58                 Toast.makeText(MainActivity.this, "path = "+path, Toast.LENGTH_LONG).show(); 59                 //2)构造 60                 FileOutputStream fos = new FileOutputStream(path+"/test.txt"); 61                 PrintStream ps = new PrintStream(fos); 62                 ps.print(str); 63                 ps.close(); 64                 fos.close(); 65                 Toast.makeText(MainActivity.this, "写入外部文件成功", Toast.LENGTH_SHORT).show(); 66             } 67            catch (Exception e) 68            { 69                Toast.makeText(MainActivity.this, "存储文件出错", Toast.LENGTH_SHORT).show(); 70            } 71         } 72         else 73         { 74             Toast.makeText(MainActivity.this, "SD卡没有挂载", Toast.LENGTH_SHORT).show(); 75         } 76     } 77     //读取外部存储文件 78     public void bt7_onClick(View v) 79     { 80         //1.判断SD卡是否挂载 81         if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 82         { 83             try { 84                 String path = getExternalFilesDir("Music").getCanonicalPath()+"/test.txt"; 85                 FileInputStream fis = new FileInputStream(path); 86                 byte[] b = new byte[1024]; 87                 int i = 0; 88                 String str = ""; 89                 while ((i = fis.read(b))>0) 90                 { 91                     str += new String(b,0,i); 92                 } 93                 fis.close(); 94                 Toast.makeText(MainActivity.this, "文件内容 = "+str, Toast.LENGTH_SHORT).show(); 95             } 96            catch (Exception e) 97            { 98                Toast.makeText(MainActivity.this, "读取外部文件失败", Toast.LENGTH_SHORT).show(); 99            }100         }101         else102         {103             Toast.makeText(MainActivity.this, "SD没有挂载", Toast.LENGTH_SHORT).show();104         }105     }

 

转载于:https://www.cnblogs.com/hanazawalove/p/5536786.html

你可能感兴趣的文章
【转载】 IP实时传输协议RTP/RTCP详解
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>
css3动画——基本准则
查看>>
SQLite详解,案例,手册
查看>>
创建自己的内容提供器
查看>>
SSRS 数据源访问Cube 无法创建订阅的解决方法
查看>>
Spring之SpringMVC
查看>>
[转载]限制排列与棋盘多项式{理论}
查看>>
cookie、session 整理
查看>>
js 设计模式——观察者模式
查看>>
[nowcoder]再编号
查看>>
redis学习小结
查看>>
pku 3041 Asteroids 二分图匹配——匈牙利算法求最小点覆盖
查看>>
天津赛区总结
查看>>
解决无法正常启动Oracle OEM控制台
查看>>
Flume采集Nginx日志到HDFS
查看>>
205. Isomorphic Strings
查看>>
C++ 类的两种定义方式
查看>>
一些命令和快捷键的全称
查看>>