博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
file(内部存储与外部存储)
阅读量:6331 次
发布时间:2019-06-22

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

android的文件编程与JAVA下的文件编程无太多区别,注意的是几点。

1、android的文件系统分为内部和外部两种,内部是指系统的指定目录:/data/data/Activity所在的包/files,外部通常是SD卡,如下代码:

textview.setText(getApplicationContext().getFilesDir()                 + ":      " + Environment.getExternalStorageDirectory().getAbsolutePath());

执行结果分别为:/data/data/com.example.data02/files  以及mnt/sdcard。

2、对内部存储系统操作,Android提供了openFileOutput和openFileInput,代码如下:

FileOutputStream outputStream;        try {            /*         MODE_PRIVATE 私有(只能创建它的应用访问) 重复写入时会文件覆盖             *          MODE_APPEND  私有   重复写入时会在文件的末尾进行追加,而不是覆盖掉原来的文件             *          MODE_WORLD_READABLE 公用  可读             *          MODE_WORLD_WRITEABLE 公用 可读写*/            outputStream = openFileOutput("test.txt",                      Activity.MODE_PRIVATE);            outputStream.write(textview.getText().toString().getBytes());              outputStream.flush();              outputStream.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }                        try {              FileInputStream in = this.openFileInput("test.txt");             byte[] buffer = new byte[1024];              in.read(buffer);              String str = EncodingUtils.getString(buffer, "UTF-8");              textview1.setText(str.toString());              in.close();          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          }

3、针对SD卡的文件系统操作,与JAVA文件编写一样,唯一要注意的是增加权限:

  

代码实例如下:

File sdcDir = Environment.getExternalStorageDirectory();          File file = new File(sdcDir,"info.txt");                  try {            FileOutputStream output = new FileOutputStream(file);            output.write(textview.getText().toString().getBytes());              output.flush();              output.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }                        try {              FileInputStream inn = new FileInputStream(file);               byte[] buffer = new byte[1024];              inn.read(buffer);              String str = EncodingUtils.getString(buffer, "UTF-8");              textview2.setText(str.toString());              inn.close();          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          }

 

转载于:https://www.cnblogs.com/Fredric-2013/archive/2013/01/26/4251159.html

你可能感兴趣的文章
【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能...
查看>>
关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)
查看>>
用浮动IP实现高可用性,待续
查看>>
Strom(0.9.3)配置
查看>>
Python之Paramiko、前端之html学习_Day14
查看>>
HDU 3836 Equivalent Sets
查看>>
深入理解JVM读书笔记思维导图
查看>>
String字符串位置移动
查看>>
MySQL无法插入中文的解决方案
查看>>
react16 渲染流程
查看>>
Android游戏与应用开发最佳学习路线图
查看>>
Android应用打开外部文件
查看>>
hadoop生态搭建(3节点)-05.mysql配置_单节点
查看>>
堆和栈的区别
查看>>
网易2017春招笔试真题编程题集合(2)——赶去公司
查看>>
top命令
查看>>
JS-键盘事件之方向键移动元素
查看>>
Compass(更新中。。。)
查看>>
bos开发时,测试卡在登录界面解决
查看>>
2013 Multi-University Training Contest 2
查看>>