Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android-文件存儲-文本存儲

Android-文件存儲-文本存儲

編輯:關於Android編程

[返回目錄]

如果要進行文件輸入或輸出操作,需要進行流的操作


Activity對文件操作的支持

public FileInputStream openFileInput(String name)設置要打開的文件輸入流

public FileOutputStream openFileOutput(String name,int mode)設置要打開的文件輸出流,指定操作的模式,可以是0,MODE_APPEND、MODE_PRIVATE、MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE

public Resources getResources() 返回Resources對象


文本存儲分為存在手機空間和sdcard上,手機空間的話,用Activity提供的方法進行讀寫,sdcard上的,則用傳統的IO操作進行。


保存在手機空間上的輸出示例(文件名無需寫路徑,直接保存在/data/data/包名/files下)

package com.example.testtext;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
	private final String FILENAME="potato.txt";//文件名
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		FileOutputStream fos=null;
		try {
			fos=super.openFileOutput(FILENAME, Activity.MODE_PRIVATE);
			PrintStream ps=new PrintStream(fos);
			ps.println("potato");
			ps.println("22");
			ps.println("true");
			ps.close();//資源一定要關閉
                        fos.close();
                    } catch (Exception e) {
			e.printStackTrace();
		}
	}
}

保存在手機空間上的文件讀取
package com.example.testtext;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {
	private final String FILENAME="potato.txt";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);		
		FileInputStream fis=null;
		try {
			fis=super.openFileInput(FILENAME);
			Scanner scanner=new Scanner(fis);
			while(scanner.hasNext()){
				Log.e("Potato", scanner.next());
			}
			scanner.close();
			fis.close();			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

保存在sdcard的情況

回顧Java中IO流操作步驟

1.用File類定義一個要操作的文件

2.使用字節流或字符流的子類為父類進行實例化(因為四個操作流都是抽象類)

3.完成輸入或輸出的功能

4.關閉流

示例

package com.example.testtext;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {
	private final String FILENAME="/mnt/sdcard/potato.txt";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);		
		File file=new File(FILENAME);
		if(!file.getParentFile().exists()){
			file.getParentFile().mkdirs();
		}
		try {
			PrintStream ps=new PrintStream(new FileOutputStream(file));
			ps.println("potato");
			ps.println("tomato");
			ps.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			Scanner sn=new Scanner(new FileInputStream(file));
			while(sn.hasNext()){
				Log.e("Potato", sn.next());
			}
			sn.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}


注意,讀寫sdcard需在AndroidManifest.xml文件中聲明權限,不然會報錯










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