Android_File

xml布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
      android:orientation="vertical"
      android:background="#ffffff"
    tools:context="com.example.android_file.MainActivity" >

   <EditText
       android:id="@+id/edittext"
       android:layout_width="match_parent"
       android:layout_height="100dp"
       />
   <Button
       android:id="@+id/button"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="写入并读取出来"/>
   <TextView
       android:id="@+id/textview"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       />

</LinearLayout>

Main1.java

package com.example.android_file;

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //如果想要在文件里面写入数据,需要加入读写数据的权限,不加会报错
        File file = new File("/mnt/sdcard/test");//安卓内置文件目录
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }else{
            Toast.makeText(MainActivity.this, "创建失败,文件已经存在", Toast.LENGTH_SHORT).show();

        }
        //删除文件
        //file.delete();
        File file1 = this.getFilesDir();//这个目录是当前应用程序默认的数据存储目录
        Log.i("info", file1.toString());
        File file2 = this.getCacheDir();//这个目录时当前应用程序默认的缓存文件的存放位置
        //把一些不是非常重要的文件在此处创建 使用
        //如果手机的内部不足的时候 系统会自动去删除APP的cache 目录的数据
        Log.i("info", file2.toString());
        // 获取/data/data/<包名>/example目录
        File file3 = this.getDir("example", MODE_PRIVATE);
        Log.i("info", file3.toString());
        //可以得到外部的存储位置,该位置的数据跟内置的使用是一样的,如果APP卸载了,该目录里面的数据也会自动清除
        //但是,如果开发者不遵守规则,不将数据放入 data/data/<包名>或者 /mnt/sdcard/Android/data/<包名>中
        //卸载之后,数据将不会自动清除掉 将会造成数据垃圾

        //this.getExternalFilesDir(type);
        //this.getExternalCacheDir();
    }
}

main2.java

package com.example.android_file;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SecondActivity extends Activity  {
    private EditText editText;
    private TextView textView;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.edittext);
        textView = (TextView) findViewById(R.id.textview);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {

            @Override//点击按钮触发读文件内容与写文件内容的操作
            public void onClick(View v) {
                // TODO Auto-generated method stub
                writeFile(editText.getText().toString());
                textView.setText(readFiles());
            }
        });
    }
    public void writeFile(String content){
        //文件权限:
        //当应用程序在安装时系统会分配给它一个userid,当该应用要去访问其他资源比如文件的时候就需要userid匹配,默认情况下,任何应用创建的文件都是私有的(位于/data/data/<package name>/files),其他程序无法访问
        //如果想程序其他应用可以访问该内容,可以将模式改成MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE
        try {
            //创建一个文件写入内容,如果想将文件写入到内存卡,需要加入权限android:permission.WRITE.EXTERNAL_ATORAGE
            FileOutputStream fos = openFileOutput("user.txt", MODE_PRIVATE);
            fos.write(content.getBytes());
            fos.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public String readFiles(){
        String content = null;
        try {
            //读取内容
            FileInputStream fis = openFileInput("user.txt");
            ByteArrayOutputStream bos = new ByteArrayOutputStream();//内存流读取数据,并将数据由字节转成字符串
            byte[] buf = new byte[1024*1024];
            int len = 0;
            while((len = fis.read(buf))!=-1){
                bos.write(buf, 0, len);

            }
            content = bos.toString();
            fis.close();
            bos.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return content;

    }
}
时间: 2024-11-06 07:42:06

Android_File的相关文章

Android数据存储——文件读写操作(File)

Android文件读写操作 一.文件的基本操作 Android中可以在设备本身的存储设备或外接的存储设备中创建用于保存数据的文件.在默认状态下,文件是不能在不同程序间共享的. 当用户卸载您的应用程序时,这些文件删除. 文件存储数据可以通过openFileOutput方法打开一个文件(如果这个)文件不存在就自动创建这个文件),通过load方法来获取文件中的 数据,通过deleteFile方法删除一个指定的文件. 1,常用方法介绍: File是通过FileInputStream和FileOutput