博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据存储——手机内部文件存储
阅读量:4689 次
发布时间:2019-06-09

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

一.特点

(1)存储的是任意类型的文件

(2)使用IO输入输出流操作文件

(3)存放的目录:/date/date/包名/files/

(4)可以设置不被其他应用操作

(5)应用卸载之后,数据同时被删除

二.API

(1)FileOutputStream  文件输出流

①openFileOutput(文件名,操作模式)

mode  操作模式:MODE_PRIVATE不能被别的应用访问,覆盖模式

                        MODE_APPEND不能被别的应用访问,追加模式

②close()  关闭输出流

(2)PrintStream  打印流

①new PrintStream(输出流)

②print(String)  打印字符串

③println(String)打印字符串并自动换行

④close()  关闭打印流

(3)FileInputStream  文件输入流

①openFileInput(文件名)

②close()  关闭输入流

③read(byte[ ]):把读到的字节保存到byte[ ]里,并返回读到的数据长度

(4)File  文件或目录

①getFileDir()返回代表内部存储目录的File实例

②getAbsolutePath()  返回绝对路径

 

 

1 
2
12
17 18
23 24
29 30

 

 

1 package com.hanqi.testapp3; 2  3 import android.content.SharedPreferences; 4 import android.os.Bundle; 5 import android.support.v7.app.AppCompatActivity; 6 import android.view.View; 7 import android.widget.EditText; 8 import android.widget.TextView; 9 import android.widget.Toast;10 11 import java.io.File;12 import java.io.FileInputStream;13 import java.io.FileOutputStream;14 import java.io.PrintStream;15 16 public class MainActivity extends AppCompatActivity {17 18     EditText et_1;19     TextView tv_1;20 21     @Override22     protected void onCreate(Bundle savedInstanceState) {23         super.onCreate(savedInstanceState);24         setContentView(R.layout.activity_main);25 26         et_1=(EditText)findViewById(R.id.et_1);27         tv_1=(TextView)findViewById(R.id.tv_1);28     }29 //写内部文件30     public void bt2_OnClick(View v)31     {32         //从内存里写入文件33 34         //1.得到内部的存储目录35         try {36 37 38         File file=getFilesDir();39 40         String path=file.getAbsolutePath();41 42         Toast.makeText(MainActivity.this, "path"+path, Toast.LENGTH_SHORT).show();43 44         //2.用输出流写入文件45 46         FileOutputStream fos = openFileOutput("test.txt",MODE_APPEND);47 48         //3.写入文件内容49             PrintStream ps=new PrintStream(fos);50 51             String str=et_1.getText().toString();52 53             ps.println(str);54             //ps.println("自动换行");55             ps.close();56             fos.close();57             Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();58         }59         catch (Exception e)60         {61             Toast.makeText(MainActivity.this, "保存失败", Toast.LENGTH_SHORT).show();62         }63 64 65     }66 67     //读68     public void bt3_OnClick(View v)69     {70         try {71             //输入流72             FileInputStream fis = openFileInput("test.txt");73 74             //1.定义byte[]75             byte[]b=new byte[1024];76             int i=0;//读到的数据长度77 78             String str1="";79 80             //2.循环读81             while((i=fis.read(b))>0)82             {83                 String str=new String(b,0,i);84 85                 str1+=str;86             }87 88             fis.close();89 90             tv_1.setText(str1);91 92         }93         catch (Exception e)94         {95 96         }97     }98 }

 

  

  

转载于:https://www.cnblogs.com/cycanfly/p/5531620.html

你可能感兴趣的文章
MyEclipse搭建安卓环境
查看>>
事件委托的使用
查看>>
异常检测(Anomaly Detection)
查看>>
eclipse常用快捷键
查看>>
Elasticsearch 健康状态处理
查看>>
Winfrom 线程实现 http、https 文件下载 显示下载进度详情
查看>>
PHP获取照片exif信息
查看>>
PHP面相对象中的重载与重写
查看>>
使用jQuery快速高效制作网页交互特效(1)
查看>>
Objective-C内存管理
查看>>
LeetCode 893 Groups of Special-Equivalent Strings 解题报告
查看>>
How to study Watir?
查看>>
java文件生成
查看>>
java名词解释
查看>>
nginx配置文件服务器
查看>>
密码邮箱验证
查看>>
SEO - H标签
查看>>
VB API 之 第七课 字体应用四
查看>>
Delphi 之 定时器 (TTimer组件)
查看>>
linux常用命令
查看>>