android I/0 스 트림 작업 파일(파일 저장)
파일 저장 방식 은 형식 에 제한 을 받 지 않 고 일부 데 이 터 를 직접 파일 형식 으로 장치 에 저장 할 수 있 습 니 다.예 를 들 어 텍스트 파일,PDF,오디 오,그림 등 입 니 다.형식 이 복잡 한 데 이 터 를 저장 할 때 보통 파일 로 저장 합 니 다.자바 가 완전한 I/를 제공 합 니 다.О흐름 체계,통과 I/О스 트림 은 디스크 에 있 는 파일 에 매우 편리 하 게 접근 할 수 있 으 며,마찬가지 로 안 드 로 이 드 도 휴대 전화 등 모 바 일 장치 에 저 장 된 파일 에 접근 하 는 I/O 스 트림 방식 을 지원 한다.
I/0 스 트림 작업 파일
진행 I/О스 트림 파일 을 조작 할 때 파일 의 전송 흐름 과 출력 흐름 을 먼저 가 져 와 야 합 니 다.Android 응용 프로그램 에 서 는 컨 텍스트 환경 Context 대상 이 제공 하 는 openFileInput()과 openFileOuput()두 가지 방법 으로 각각 파일 의 입력 흐름 과 출력 흐름 을 얻 을 수 있 습 니 다.이 두 가지 방법 에 대한 구체 적 인 소 개 는 다음 과 같 습 니 다.
4 가지 파일 읽 기와 쓰기 모드
패턴
기능 설명
Context.MODE_PRIVATE
개인 모드 입 니 다.이 모드 에서 만 든 파일 은 모두 개인 파일 로 응용 자체 에 만 접근 할 수 있 습 니 다.따라서 이 모드 에서 기 록 된 내용 은 원래 파일 의 내용 을 덮어 씁 니 다.
Context. MODE_APPEND
추가 모드 입 니 다.이 모드 는 먼저 파일 이 존재 하 는 지 확인 하고 파일 이 존재 하지 않 으 면 새 파일 을 만 듭 니 다.파일 이 존재 하면 원본 파일 의 끝 에 내용 을 추가 합 니 다.
Context.MODE_WORLD_READABLE
읽 기 가능 모드 입 니 다.이 모드 의 파일 은 다른 프로그램 에서 읽 을 수 있 습 니 다.
Context.MODE_WORLD_WRITABLE
쓰기 가능 모드,이 모드 의 파일 은 다른 프로그램 에서 읽 고 쓸 수 있 습 니 다.
이 밖 에 Context 컨 텍스트 대상 은 응용 프로그램의 데이터 폴 더 에 접근 하 는 방법 도 제공 했다.다음 표 와 같다.
데이터 폴 더 에 접근 하 는 방법
방법.
기능 설명
File getDir(String name, int mode)
응용 프로그램의 데이터 폴 더 에서 name 에 대응 하 는 하위 디 렉 터 리 를 가 져 오 거나 만 듭 니 다.
File getFilesDir()
프로그램의 데이터 폴 더 를 가 져 오 는 절대 경로
String[] fileList()
프로그램의 데이터 폴 더 에 있 는 모든 파일 을 되 돌려 줍 니 다.
boolean deleteFile( String name)
프로그램의 데이터 폴 더 에 지정 한 파일 을 삭제 합 니 다.
다음은 코드 를 통 해 I/O 흐름 을 사용 하여 파일 을 읽 고 쓰 는 방법 을 보 여 줍 니 다.
xml 레이아웃 파일 만 들 기
xml 레이아웃 코드 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<!-- , , -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- , , , -->
<EditText
android:id="@+id/ediFileOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="4"/>
<!-- , , , -->
<Button
android:id="@+id/btnWrite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "/>
<!-- , , , , , 4-->
<EditText
android:id="@+id/editFileIn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:editable="false"
android:lines="4"/>
<!-- , , -->
<Button
android:id="@+id/btnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "/>
</LinearLayout>
상기 인터페이스 레이아웃 은 비교적 간단 합 니 다.두 개의 텍스트 상자 와 두 개의 단추 만 포함 하고 각각 파일 저장 과 파일 읽 기 두 가지 작업 에 사 용 됩 니 다.이어서 Activity 프로그램 만 들 기
activity 코드 는 다음 과 같 습 니 다.
package com.example.wenjiancuncu;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class FileIOActivity extends AppCompatActivity {
private EditText editFileIn, editFileOut; //
private Button btnRead, btnWrite; //
final String FILE_NAME = "qstIO.txt"; //
@Override //
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //
setContentView(R.layout.activity_file_io); //
//
editFileIn = (EditText) findViewById(R.id.editFileIn);
editFileOut = (EditText) findViewById(R.id.ediFileOut);
//
Button btnRead = (Button) findViewById(R.id.btnRead);
Button btnWrite = (Button) findViewById(R.id.btnWrite);
// btnRead
btnRead.setOnClickListener(new View.OnClickListener() {
@Override //
public void onClick(View v) {
// , editFileIn
editFileIn.setText(read());
}
});
// btnWrite
btnWrite.setOnClickListener(new View.OnClickListener() {
@Override //
public void onClick(View v) {
write(editFileOut.getText().toString()); // editFileOut
editFileOut.setText(""); // editFileOut
}
});
}
private String read() {
try {
FileInputStream fis = openFileInput(FILE_NAME); //
byte[] buff = new byte[1024]; //
int hasRead = 0;
StringBuilder sb = new StringBuilder(""); //
//
while ((hasRead = fis.read(buff)) > 0) {
//
sb.append(new String(buff, 0, hasRead));
}
fis.close(); //
return sb.toString(); //
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
private void write(String content) {
try {
//
FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_APPEND);
PrintStream ps = new PrintStream(fos); // FileOutStream PrintStream
ps.println(content); //
ps.close(); //
// Toast
Toast.makeText(FileIOActivity.this," ", Toast.LENGTH_LONG).show();
}catch (Exception e) {
e.printStackTrace();
}
}
}
상기 코드 의 핵심 작업 은 파일 의 저장 과 읽 기 입 니 다.그 중에서 read()와 write()두 가지 방법 은 각각 파일 읽 기와 쓰기 작업 에 사 용 됩 니 다.코드 에 서 는 btnRead 와 btnWrite 단 추 를 각각 이벤트 모니터 로 설정 하고 이벤트 처리 방법 에서 해당 하 는 read()또는 write()방법 으로 파일 을 읽 거나 저장 합 니 다.AndroidMainfest 에서 Activity 를 설명 합 니 다.
실행 결과
Android 응용 프로그램의 데이터 파일 은 기본적으로/data/data/패키지 이름/files 디 렉 터 리 에 저 장 됩 니 다.AndroidDevice Monitor 의 File Explorer 옵션 에서/data/data/com.패키지 이름/files 디 렉 터 리 를 펼 치면 다음 그림 과 같이 저 장 된 qstIO.txt 데이터 파일 을 볼 수 있 습 니 다.
총결산
위 챗 데모 에 관 한 이 글 은 여기까지 입 니 다.저희 의 더 많은 멋 진 내용 에 관심 을 가 져 주 셨 으 면 좋 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
android I/0 스 트림 작업 파일(파일 저장)진행 I/О스 트림 파일 을 조작 할 때 파일 의 전송 흐름 과 출력 흐름 을 먼저 가 져 와 야 합 니 다.Android 응용 프로그램 에 서 는 컨 텍스트 환경 Context 대상 이 제공 하 는 openFile...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.