Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 存儲學習之在內部存儲中讀寫文件

Android 存儲學習之在內部存儲中讀寫文件

編輯:關於Android編程

大家都知道,在實際工作中開發,進場需要將一個文件寫入到手機的存儲中。既然說到手機的存儲空間,那就先說說手機的存儲空間分類:

1: 內部存儲空間

RAM內存: 也就是手機的運行的內存,相當於電腦的內存

ROM內存: 也就是手機的存儲內存,相當於電腦的硬盤

2: 外部存儲空間

也就是可插拔的SD卡,相當於電腦的移動硬盤,U盤等。

 

既然手機存儲分為兩類,那我們先看看如何在手機的內部存儲中讀寫文件。

那我們引入一個實際中很常見的例子:

\

一般帶登錄界面的,都需要將用戶的信息保存到本地。我們就用上面的例子演示,將用戶輸入的信息保存到手機的內部存儲。

布局文件代碼如下:


    
    
    
    
    
    
    
        
        

 

 

當我們點擊按下確定按鈕後,會將我們的用戶信息,寫到手機的內部存儲中,也就是該應用所在的包名下

 

 public void login(View v)
    {
    	String name = ed_nam.getText().toString();
    	
    	String passwd = ed_passwd.getText().toString();
    	
    	//判斷用戶名或者密碼是否輸入
    	if((name.equals()) || (passwd.equals()))
    	{
    		Toast.makeText(this, 用戶名或密碼不能為空, Toast.LENGTH_SHORT).show();
    	}
    	else 
    	{
    		//如果選中自動登錄,我們就需要保存用戶名和密碼
    		if(cb.isChecked())
    		{
    			//創建一個文件,用戶保存用戶名和密碼
    			File file = new File(data/data/com.demo.storage/info.txt);
    			try {
    				
					FileOutputStream fos = new FileOutputStream(file);
					//寫入用戶名和密碼,以name##passwd的格式寫入
					fos.write((name + ## + passwd).getBytes());
					//關閉輸出流
					fos.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
    		}
    		
    		Toast.makeText(this, 登錄成功, Toast.LENGTH_SHORT).show();
		}
    }

我所指定的文件存儲路徑就是包名下的info.txt文件:

 

\

我們導出可以看下:

\
 

到這裡的話,我們的往手機的內部存儲中寫已經完成。接下是往手機的內部存儲中讀。

那我們就這樣做,當如果只要點擊進入此Actiivty就顯示出用於以前保存的用於和密碼

 

public void readInfo()
	{
		File file = new File(data/data/com.demo.storage/info.txt);
		
		//如果文件存在,則讀取
		if(file.exists())
		{
			try {
				
				FileInputStream fin = new FileInputStream(file);
				//把字節流轉化為字符流
				BufferedReader buffer = new BufferedReader(new InputStreamReader(fin));
				//讀取文件中的用戶名和密碼
				String text = buffer.readLine();
				//以##為關鍵字分割字符
				String s[] = text.split(##);
				
				//設置進EditText
				ed_nam.setText(s[0]);
				ed_passwd.setText(s[1]);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

當我們只要進入就會回顯出,我能輸入的用戶名和密碼:

 

\

到這裡我們的讀寫就完成了。

但是有人有沒有發現我們上面的路徑都是我們自己寫死的,同時也是自己用手一個一個寫的,萬一中間寫錯一個字母,豈不是很麻煩。

不過Google給我們提供了一個專門訪問內部存儲的API:getFilesDir()

 

    			//創建一個文件,用戶保存用戶名和密碼
    			//File file = new File(data/data/com.demo.storage/info.txt);
    			
    			//getFilesDir返回的是一個File對象,其路徑是:data/data/com.demo.storage/files
    			File file = new File(getFilesDir(), info.txt);
getFileDir的路徑是包名下files文件下:當我們點擊登錄時,就會在此路徑下創建一個info.txt文件

 

\

同理Google也提供了一個API: getCacheDir(),其路徑大家可以猜到了,就是上圖cache所在的路徑了。

我們進入到系統設置,app,正在運行中就找到此進程

\

就能看到如上圖所示,其中Clear Data按鈕是清除包名文件夾下所有的內容,Clear Cache是清除Cache文件夾下的內容

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved