- 文件存储
1.直接利用Activity提供文件操作方法
data\data\<package name>\file\文件名称
文件操作也一共两个方法,一个是文件输出
Activity代码如下:
public class MainActivity extends Activity { private static final String FILENAME="ee"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FileOutputStream output=null; try { //设置文件输出名称及创建模式 output=super.openFileOutput(FILENAME,Activity.MODE_PRIVATE); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } PrintStream out=new PrintStream(output); out.println("姓名: 张依依 "); out.println("年龄: 21 "); out.println("地址: 湖南大学"); //关闭输出流 out.close(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
输出路径同上一堂课路径一致DDMS
现在我们实现读入文件:
只需要增添这几句:
private TextView txt=null;
添加输入:
//输入方法 txt=(TextView)super.findViewById(R.id.msg); FileInputStream input=null; try { input=super.openFileInput(FILENAME); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Scanner scan=new Scanner(input);//定义scanner while(scan.hasNext()){ txt.append(scan.next()+"\n"); } scan.close();//关闭输入流
实现效果如图:
实现上面的代码似乎我们可以想存就存了,但是!!!现在手机的内存一般都比较小,空间也早被其他霸道软件占据,当然土豪机那种机身内存16G,32G的另算,一般来说我们会把数据存到SD卡上,sd卡大家都知道是什么吧,黑黑的插卡,那么接下来的移花接木看好了:
因为默认存储位置是在手机,那么我们给它改变路径
代码如下:
public class MainActivity extends Activity { private static final String FILENAME="/storage/extSdCard/eedata/authoree.txt";//文件名称 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File file=new File(FILENAME); if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } PrintStream out=null; try { out=new PrintStream(new FileOutputStream(file)); out.println("姓名: 张依依 "); out.println("年龄: 21 "); out.println("地址: 湖南大学"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(out!=null){ out.close(); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
注意记得配置权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
还有因为此程序要用到sd卡,首先自己的虚拟你查看时候要配置好sd卡,也就是创建虚拟机时要勾选sd卡的选项,建议用手机实验。
实现效果如下:
接下来我们要把它读出来
实际上在io流中,刚才我们的操作是写入。
读到手机上其实也很简单,要知道QQ不在线也可以浏览聊天信息是使用了本地存储,而需要联网刷新更早的聊天记录是因为通过了后台网站服务器的数据库,学完本课是不是有点小激动去实现自己的不在线预览功能呢了,言归正传,开始写入
布局文件定义:
<TextView android:id="@+id/msg" android:layout_width="wrap_content" android:layout_height="wrap_content" />
添加输出
Activity代码定义,只需要加上FileInputStream操作即可,与前面读文件异曲同工
public class MainActivity extends Activity { private static final String FILENAME="authoree.txt";//文件名称 private static final String DIR="eedata";//文件名称 private TextView txt=null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.txt=(TextView)super.findViewById(R.id.msg); if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//如果Sd卡存在 File file=new File(Environment.getExternalStorageDirectory().toString()+ File.separator+DIR+File.separator+FILENAME); if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } //写入方法 // PrintStream out=null; // try { // out=new PrintStream(new FileOutputStream(file)); // out.println("姓名: 张依依 "); // out.println("年龄: 21 "); // out.println("地址: 湖南大学"); // } catch (FileNotFoundException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // }finally{ // if(out!=null){ // out.close(); // } // } //输入方法 Scanner scan=null;//定义scanner try { scan=new Scanner(new FileInputStream(file)); while(scan.hasNext()){ txt.append(scan.next()+"\n"); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(scan!=null){ scan.close();//关闭输入流 } } }else{ Toast.makeText(this, "SD卡不存在读取失败", Toast.LENGTH_LONG).show();//sd卡不存在提示 } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
同时我们看一下没有sd卡的虚拟机运行效果
读取效果如图:
相关推荐
Android不需要文件存储权限将文件保存至手机,Android不需要文件存储权限将文件保存至手机
Android M 读取OTG U盘路径和sdcard路径demo , 第三方apk可以参考使用。摘要为什么要50个字,为什么呢?
博客地址:http://blog.csdn.net/lowprofile_coding/article/details/48269011 1.获取扩展存储设备 2.获取sdcard2外部存储空间 3.获取可用的 EMMC 内部存储空间 4.获取其他外部存储可用空间 5.获取内部存储目录
android 读取外置和内置存储卡路径和大小,亲测好使,项目中以运用
这是一个测试不同版本android存储路径的例子
Android系统数据存储分为内部存储和外部存储,内部存储是手机系统自带的存储,一般空间都不大,外部存储一般是SD卡的存储,空间一般都比较大。一般我们会把存储内容放在外部存储空间里。在使用过程需要注意事项: 先...
来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...
android文件读取、写入(自带空间、SDCard)的记事本程序,代码较为精简,该注释的地方也都有标注
Android studio 获取内置存储器路径,创建文件夹,读写、删除文件,亲试好用
android 读取外置和内置存储卡路径和大小.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
1.首先是长按保存:这个可以去参照网络上的,无非是自己先要拼接好一个文件路径。注意:IO流只能帮忙建文件,但是不能帮忙建目录(路径)。 // 先拼接好一个路径:在内存卡/或是手机内存上做好文件夹 String ...
一、获取设备存储路径 Android手机存储分为两个部分:内部存储和外部存储,内部存储一般是手机自带的存储空间,外部存储指外插SD卡提供的存储空间;随着手机发展,这两个存储的定义又有了一些些变化,新的手机不再...
方法可以获得当前的手机自带的存储空间中的当前包文件的路径 getFileDir() —– /data/data/cn.xxx.xxx(当前包)/files getCacheDir() —– /data/data/cn.xxx.xxx(当前包)/cache 1. 编写文件读取与写入功能实现类...
android 读取和存储sd卡一个例子,欢迎下载!
文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。 概述 文件存取的核心就是输入流和输出流。 Android文件的操作模式 文件的相关...
Android 通过反射调用获取内置存储和外置sd卡根路径(适用于各个版本)
android从网上下载各类文件,解压缩文件,从网络上或者SD卡读取xml并用dom4j解析,把网络上的xml存入SD卡。...使用的时候注意把下载路径,SD卡存储路径,SD卡上的文件读取路径等自己修改一下,不要弄错了。
由于不同厂商定制,挂载存储路径并不统一,并且VolumeInfo需要源码环境,这里提供一个类,通过反射机制轻松获取外挂磁盘的路径和类别(判断是否SD\OTG),并获取对硬盘的空间大小情况
发送端用Socket发送指定路径的文件给接收端,接收端将文件存储到指定路径。
获取android的所有外置sd卡 博文地址:http://blog.csdn.net/wei18359100306/article/details/41347783