Android中文件存储的操作:

1.Activity的openFileOutput()方法可以把数据输出到文件中
2.创建的文件保存在/data/data/<package name>/files目录
3.实现过程与在java中保存数据到文件中是一样的

<!-- 在SD卡中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 向SD卡写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

public class MainActivity extends Activity{
protected void onCreat(Bundle savedInstanceState){
super.onCreat(savedInstanceState);
setContentView(R.layout.activity_main);
File file=new File("/mnt/sdcard/test"); //创建文件
if(!file.exists()){ //判断文件是否存在
try{
file.createNewFile(); //文件不存在就创建它
}catch(IOException e){
e.printStackTrace();
}
}else{
Toast.makeText(MainActivity.this,"文件已存在",1000).show();
}
//file.delete(); //删除文件
}
}

1.目录结构。this.getFilesDir().当前程序默认的数据存储目录
2.this.getCacheDir(),默认的缓存文件的存放位置,不太重要的创建使用,内存不足的时候,系统会自动删除app中cache目录的数据
3.this.getDir("xch",MODE_PRIVATE);/data/data/<包名>/app_xch
4.this.getExternalCacheDir(),外部的存储位置,app卸载后会自动删除。
5.如果开发者不遵守不把数据放入data/data/<包名>或者/mnt/sdcard/Android/data/<包名>,卸载不会清除,会造成所谓的数据垃圾。

Demo:

package com.example.filereadwrite;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText content;
private Button btn_SaveRead;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); content=(EditText) findViewById(R.id.et);
btn_SaveRead=(Button) findViewById(R.id.btn_SaveRead);
tv=(TextView) findViewById(R.id.tv); btn_SaveRead.setOnClickListener(this);
} @Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_SaveRead:
writeFile(content.getText().toString());
tv.setText(readFile());
break;
}
} /**
* 将内容写入文件
* @param content
*/
public void writeFile(String content){
try {
FileOutputStream fos=openFileOutput("text.txt",MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 将文件内容读出
*/
public String readFile(){
String content="";
try {
FileInputStream fis=openFileInput("text.txt");
ByteArrayOutputStream baos=new ByteArrayOutputStream();//可以捕获内存缓冲区的数据,转换成字节数组
int len=0;
byte[] buffer=new byte[1024];
while((len=fis.read(buffer))!=-1){
baos.write(buffer,0,len);
}
content=baos.toString();
fis.close();
baos.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}
}

注: FileOUtputStream fos= openOutoput(文件名,访问权限);
     fos.write(写入的二进制文件);

byte [] buffer = new byte[1024];// 最多可存1024字节

baos.write(buffer, 0, len);// 0表示偏移量为0

Android学习总结——文件储存的更多相关文章

  1. Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习

    一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...

  2. Android学习笔记——文件路径、内容Uri学习笔记[转]

    一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...

  3. 八、Android学习第七天——XML文件解析方法(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...

  4. Android学习笔记之Drawable 文件夹

    PS:最近闲着无聊..模仿去写个QQapp..效果还不错..并且从中又学习到了一些相关的东西,在这里进行一些相关总结.. 学习内容: Android 中 Drawable 文件夹内部相关属性..   ...

  5. 34.Android之资源文件res里drawable学习

    我们经常看到android工程资源文件res下drawable如ldpi.mdpi.hdpi.xhdpi.xxhdpi文件,今天我们学习了解下. (1)drawable-hdpi里面存放高分辨率的图片 ...

  6. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  7. [置顶] Android学习系列-把文件保存到SD卡上面(6)

    Android学习系列-把文件保存到SD卡上面(5) 一般多媒体文件,大文件需要保存到SD卡中.关键点如下: 1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExter ...

  8. 《Android学习指南》文件夹

    转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不 ...

  9. 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件

    目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...

随机推荐

  1. 创建UILabel

    UILabelCreate.h #import <UIKit/UIKit.h> @interface UILabelCreate : UILabel /** * 创建UILabel 初始化 ...

  2. 用CSS/CSS3 实现 水平居中和垂直居中的完整攻略

    水平居中:行内元素解决方案 只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可:   .parent { text-align:center; } 水 ...

  3. 十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...

  4. 黑马程序员 Java正则表达式,详解反斜线在Java中的作用

    ---------------------- ASP.Net+Android+IO开发S. .Net培训.期待与您交流! ---------------------- 在程序设计过程中,经常需要对获取 ...

  5. UVA 673 (13.08.17)

     Parentheses Balance  You are given a string consisting of parentheses () and []. Astring of this ty ...

  6. [转]laravel 4之视图及Responses

    http://dingjiannan.com/2013/laravel-responses/   laravel 4之视图及Responses 16 Aug 2013 Laravel的Response ...

  7. asp.net 内部重定向

    1. /* * 2. * Context.RewritePath() * 使用给定路径重写 URL.(内部重写) * 内部请求重写 */ public static void TestTwo() { ...

  8. 一篇文章讲清楚android ImageView.ScaleType

    2016-01-10 刚开始android编程的时候, 关于ImageView.ScaleType网络上好多, 说实话没看懂. 本文就是为了讲清楚这个, 有用的话转走, 请注明原地址和作者. 典型的代 ...

  9. Cisco cmd 命令

    1.enable 开启全局配置模式:disable 禁用配置模式 2.config进入配置模式 3.line 设置进入用户模式密码:分为 line aux 0;line console 0;line ...

  10. ios 动态修改UILabel字体大小

    - (IBAction)sliderChange:(id)sender {   NSLog(@"sliderChange");   UISlider *slider = (UISl ...