Android——课堂整理:assets目录和手机外部存储

layout文件:

 1 <Button
 2         android:layout_width="match_parent"
 3         android:layout_height="wrap_content"
 4         android:text="保存资产文件到内部存储"
 5         android:onClick="bt4_onClick"/>
 6     <ImageView
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:id="@+id/iv_1"
10         android:src="@drawable/on"/>
11     <Button
12         android:layout_width="match_parent"
13         android:layout_height="wrap_content"
14         android:text="设置图片指向内部存储"
15         android:onClick="bt5_onClick"/>
16     <Button
17         android:layout_width="match_parent"
18         android:layout_height="wrap_content"
19         android:text="写入外部存储文件"
20         android:onClick="bt6_onClick"/>
21     <Button
22         android:layout_width="match_parent"
23         android:layout_height="wrap_content"
24         android:text="读取外部存储文件"
25         android:onClick="bt7_onClick"/>

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         else
102         {
103             Toast.makeText(MainActivity.this, "SD没有挂载", Toast.LENGTH_SHORT).show();
104         }
105     }
时间: 2024-08-25 20:48:06

Android——课堂整理:assets目录和手机外部存储的相关文章

Android开发之assets目录下资源使用总结

预前知识: Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.ap

Android Studio增加assets目录、raw目录

assets与res/raw不同 assets目录是Android的一种特殊目录,用于放置APP所需的固定文件,且该文件被打包到APK中时,不会被编码到二进制文件. Android还存在一种放置在res下的raw目录,该目录与assets目录不同. 注意点: 1. assets目录不会被映射到R中,因此,资源无法通过R.id方式获取,必须要通过AssetManager进行操作与获取:res/raw目录下的资源会被映射到R中,可以通过getResource()方法获取资源. 2. 多级目录:ass

课堂整理:写入和读取外部存储文件

layout代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

android studio创建assets目录并且利用webView加载其html

1.在Android Studio中添加assets目录,首先调整成project模式 在main的目录下新建一文件夹叫:assets .  WebView\src\main\assets 在项目的WebView.iml中加入: <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" /> 2.在利用webView加载html文件 <span style="w

Xamarin.Android 如何使用Assets目录下的文件

个人原创,转载注明出处:http://blog.csdn.net/supluo/article/details/43672411 Xamarin.Android  官网介绍地址:http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/ 这里插入一下Assets与Raw目录的异同点 这两个目录的相同点: 1. 这两个

Android——数据存储:手机外部存储 SD卡存储

xml <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/et_5" android:hint="要存储的的内容"/> <EditText android:layout_width="match_parent" android:layout_

手机外部存储练习

首先记住加上读取权限 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.dell.wodelianxi"> <uses-permission android:name="androi

Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?

本文主要介绍如何写数据到sd卡,这里主要到的技术是Environment中的方法. 1. 2.实现代码: /datasave/src/com/amos/datasave/savePasswordService.java //写数据到sdcard public void savePasswordToSDCard(String name, String password) { // android 2.1 /sdcard/xx.txt // android 2.2 /mnt/sdcard/xx.tx

数据存储——手机外部文件存储

一.特点 1.把文件存储在手机外部存储空间(SD卡)里 2.存储的是任意类型的文件 3.使用IO输入输出流操作文件 4.文件路径 1-SD卡根目录/Android/data/包名/files/[ 文件类型],应用卸载后,数据同时被删除: 2-SD卡根目录/,应用卸载之后,数据不会被同时删除. 5.需要声明权限 1-android.permission.WRITE_EXTERNAL_STORAGE,写入文件: 2-MOUNT_UNMOUNT_FILESYSTEMS,创建和删除文件. 二.API 1