Android 읽 기 파일

전재 주 소 를 주의 하여 밝 히 세 요.http://blog.csdn.net/lib739449500/article/details/42836181 주인의 노동 성 과 를 소 중 히 여기다.
실제 개발 에서 안 드 로 이 드 는 5 가지 방식 으로 데 이 터 를 저장 했다.
1. 파일 저장 데이터
2. SharedPreferences 를 사용 하여 데 이 터 를 저장 합 니 다.
3. SQLite 데이터베이스 저장 데이터
4. ContentProvider 로 데 이 터 를 저장
5. 네트워크 저장 데이터
다음은 스스로 정리 하고 먼저 파일 을 써 서 데 이 터 를 저장 하 는 방식 입 니 다.
파일 저장 방식 도 여러 가지 상황 으로 나 뉜 다.
1。응용 프로그램의 데이터 폴 더 에 있 는 파일 읽 기
Context 의 openFileOutput 이나 openFileInput 을 통 해 파일 의 입 출력 흐름 을 열 수 있 습 니 다.
 
FileInputStream 
openFileInput
(String name)
: 프로그램의 데이터 폴 더 를 엽 니 다.
name
파일 에 대응 하 는 입력 흐름
FileOutStream openFileOutput (Stringname, int mode): 프로그램의 데 이 터 를 여 는 폴 더 의 name 파일 이 출력 흐름 에 대응 합 니 다.
첫 번 째 매개 변 수 는 파일 이름 입 니 다. 경로 분할 자 를 포함 할 수 없습니다. "/"
그 중에서 두 번 째 방법의 두 번 째 매개 변 수 는 파일 에 대한 접근 권한 입 니 다.
Context.MODE_PRIVATE
    =  0\\
응용 프로그램의 개인 적 인 것 입 니 다.
Context.MODE_APPEND
    = 32768 \\
추가 
만 들 파일 이 존재 한다 면 새로 기 록 된 데 이 터 는 이전 데 이 터 를 덮어 쓰 지 않 습 니 다.
Context.MODE_WORLD_READABLE
=  1 \\
읽 을 만하 다 
모든 프로그램 에 접근 할 수 있 습 니 다.
Context.MODE_WORLD_WRITEABLE
=  2
쓸 수 있다
 
모든 프로그램 을 쓸 수 있 습 니 다.
여러 권한 을 원한 다 면 다음 과 같이 쓰 십시오.
Context.MODE_PRIVATE + Context.MODE_APPEND (주 의 는 '+' 번)
파일 이 존재 하지 않 으 면 Android 가 자동 으로 생 성 합 니 다.만 든 파일 은 / data / data / 패키지 이름 / files 디 렉 터 리 에 저 장 됩 니 다.
그 외 에 도
Context
응용 프로그램의 데이터 폴 더 에 접근 하기 위해 다음 과 같은 몇 가지 방법 을 제공 합 니 다.
getDir
(String
name,int
mode)
응용 프로그램의 데이터 폴 더 에서 가 져 오 거나 만 듭 니 다.
name
대응 하 는 하위 디 렉 터 리
File
getFilesDir
()
이 프로그램의 데이터 폴 더 를 가 져 오 는 절대 경로
String [] fileList () 이 프로그램의 데이터 폴 더 에 있 는 지정 한 파일 을 되 돌려 줍 니 다.
deleteFile
(String)
이 프로그램의 데이터 폴 더 에 지정 한 파일 을 삭제 합 니 다.
추가: 다른 파일 을 읽 으 려 면 이 파일 의 경 로 를 완전 하 게 써 야 합 니 다. 예 를 들 어:
예 를 들 어 / data / data / com. henii. android / files / myText. txt,
그리고 openFileInput 방법 을 사용 할 수 없습니다.
그래서 파일 을 읽 는 가장 일반적인 방법 으로 만 읽 을 수 있 습 니 다.
간단하게 자신의 테스트 코드 를 붙 여 라.
/**
	 *     
	 * 
	 * @param fileName
	 *                 
	 * @param content
	 *                 
	 * @return
	 */
	public boolean save(String fileName, String content) {
		boolean flag = false;
		try {
			FileOutputStream outStream = context.openFileOutput(fileName,
					Context.MODE_PRIVATE + Context.MODE_APPEND);
			outStream.write(content.getBytes());
			flag = true;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return flag;
	}

	/**
	 *     
	 * 
	 * @param fileName
	 *      
	 * @return
	 */
	public String read(String fileName) {
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
		try {
			FileInputStream inStream = context.openFileInput(fileName);
			int len = 0;
			byte[] data = new byte[1024];
			while ((len = inStream.read(data)) != -1) {
				outputStream.write(data, 0, len);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new String(outputStream.toByteArray());
	}

전재 주 소 를 주의 하여 밝 히 세 요.
http://blog.csdn.net/lib739449500/article/details/42836181
주인의 노동 성 과 를 소 중 히 여기다.
2). sd 카드 의 파일 읽 기
    간단 해.두 걸음 이면 됩 니 다.
    하 나 는 권한 을 추가 하 는 것 이다.

좋은 웹페이지 즐겨찾기