一.特点
(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 212 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 }