Android 읽 기 파일
실제 개발 에서 안 드 로 이 드 는 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 카드 의 파일 읽 기
간단 해.두 걸음 이면 됩 니 다.
하 나 는 권한 을 추가 하 는 것 이다.