我们在手机上经常会看到过这样一种文件“”文件管理“。我们点进去一看全是一些英文名,乱七八糟的。其实这些就是文件。大家都知道的哈。我们有时候自己在开发的时候也会经常使用文件来存储一些数据。使用File有什么好处呢?在我们卸载我们的软件的时候,我们的手机也会一并把file中保存的数据卸载干净。这样就不用担心软件在手机内残留大量的数据,占用存储空间。但是也有一定的坏处:1、当初储量大的时候会极大地占用内存。2、我们不小心自己手动在手机上clearData后数据会丢失。

   创建文件:


File file=new File("/mnt/sdcard/test");
if(!file.exists()){
	try {
		file.createNewFile();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}else{
	Log.i("info", "文件已经存在");
}

       

删除文件       file.delete();

文件类相关

1.目录结构。this.getFilesDir().当前程序默认的数据存储目录
2.this.getCacheDir(),默认的缓存文件的存放位置,不太重要的创建使用,内存不足的时候,系统会自动删除app中cache目录的数据
3.this.getDir("myfile",MODE_PRIVATE);/data/data/<包名>/app_myfile,




android 安全删除文件 android文件删除会怎么样_数据

4.this.getExternalCacheDir(),外部的存储位置,app卸载后会自住删除。

5.如果开发者不遵守不把数据放入data/data/<包名>或者/mnt/sdcard/Android/data/<包名>,卸载不会清除

我们输出一下


Log.i("info", "根目录"+this.getFilesDir().toString());
		Log.i("info", "根目录缓存目录"+this.getCacheDir().toString());
		Log.i("info", "自定义目录"+this.getDir("my_file", MODE_PRIVATE));
		Log.i("info", "外部存储位置"+this.getExternalFilesDir(ACCESSIBILITY_SERVICE));
		Log.i("info", "外部缓存目录"+this.getExternalCacheDir());

看一下后台的输出结果:

android 安全删除文件 android文件删除会怎么样_包名_02

     文件的存储:

   我们演示一个例子,看一下文件的读写操作:我们在编辑框中写入数据,保存之后,在结果栏中显示结果

    

android 安全删除文件 android文件删除会怎么样_缓存_03

      看代码是如何实现的吧:里面都有注释应该能够看懂


public class FileTest extends Activity {

	
	private EditText fileEt;
	private Button fileBt;
	private TextView fileTx;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		setContentView(R.layout.activity_file);
		super.onCreate(savedInstanceState);
		findViews();	
		fileBt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//写文件
				writeFile(fileEt.getText().toString());
				//读文件
				String result=readFile();
				fileTx.setText(result);
			}
		});
	}
	
	private void findViews() {
		fileEt = (EditText)findViewById( R.id.file_et );
		fileBt = (Button)findViewById( R.id.file_bt );
		fileTx = (TextView)findViewById( R.id.file_tx );
	}
	
	//将数据写入
	public void  writeFile(String et){
		try {
			FileOutputStream fos=openFileOutput("fdd.txt", MODE_PRIVATE);
			fos.write(et.getBytes());
			fos.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
	
	//读数据从文件中
	public String readFile(){
		String content = null;
		try {
			FileInputStream fis=openFileInput("fdd.txt");
			//建立一个缓冲区
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			//每次1024个字节
			byte[] buffer= new byte[1024];
			//每次的长度
			int len;
			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;
	}
	
}

       我们看到文件存储的过程和之前我们学习JAVA的时候是一样的。