Android Saving Data(二)

        Saving Filejava

android讀寫文件的形式和普通的java IO的方式並無什麼不一樣,惟一有所限制的是當咱們建立文件的時候不可以在像javaSE那樣隨意了。通常android讀寫文件有兩種形式:android

1 File file = new File(context.getFilesDir(), filename);緩存

2 FileOutputStream outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
ide

強烈推薦使用第一種方式,由於在第一種方式的狀況下咱們可使用許多高級點的文件讀寫方法,這樣不說能提升效率,可是可以減小錯誤機率。spa

代碼:code

public class MainActivity extends Activity {
    TextView view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_layout);
        view=(TextView) findViewById(R.id.textView1);
        Button write=(Button) findViewById(R.id.button1);
        write.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                view.setText(getFilesDir().toString());
                String filename = "myfile";
                String string = "Hello world!";
                FileOutputStream outputStream;

                try {
                  outputStream = openFileOutput(filename, Context.MODE_APPEND);
                  PrintWriter pw=new PrintWriter(outputStream);
                  pw.println(string);
                  pw.close();
                  if(outputStream!=null)outputStream.close();
                } catch (Exception e) {
                  e.printStackTrace();
                }
                
            }
        });
        Button read=(Button) findViewById(R.id.button2);
        read.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                
                String filename="myfile";
                try {
                    BufferedReader reader=new BufferedReader(new FileReader(new File(getFilesDir(), filename)));
                    String res="";
                    res=reader.readLine();
                    view.setText(res);
                    reader.close();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }
}
View Code

注意:android中內存和外存的讀寫沒有什麼不一樣,內存獲取目錄使用getFileDir(),而外存用:getExternalStoragePublicDirectory()用於在外存公共部分保存文件blog

getExternalFilesDir()用於保存我的文件的時候使用。內存

此外:get

getExternalStorageState() 查詢外部存儲狀態;string

getFreeSpace()getTotalSpace()查出是否有足夠的可用空間;

getCacheDir() 按期建立的全部緩存文件。

相關文章
相關標籤/搜索