자바 웹 개발자가 될거야/JAVA
[Android] 파일 처리하기 / 파일 저장 및 읽어오기
whitz
2022. 1. 24. 11:27
< 파일 처리하기 >
- 파일을 읽기 위해서 openFileInput() 메소드를 사용하면 FileInputStream 반환
- 파일을 쓰기 위해서 openFileOutput() 메소드를 사용하면 FileOutputStream 반환
① 파일 저장하기
- 화면에 버튼 2개를 이용해서 파일을 저장하고 불러오는 기능을 구현해 보겠다
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="내장 메모리 파일 쓰기"
android:id="@+id/writeBtn" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="내장 메모리 파일 읽기"
android:id="@+id/readBtn" />
</LinearLayout>
package com.example.fileex1;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button wBtn = findViewById(R.id.writeBtn);
Button rBtn = findViewById(R.id.readBtn);
wBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
FileOutputStream outFs = openFileOutput("file.txt", Context.MODE_PRIVATE);
String msg = "쿡북 안드로이드" ;
outFs.write(msg.getBytes());
Toast.makeText(getApplicationContext(),"저장됨",Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(getApplicationContext(),e.getLocalizedMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
}
- file.txt 저장된 위치 찾기
· 내장 메모리의 저장 위치는 /data/data/패키지명/files 폴더
· 오른쪽 하단에 있는 Device File Explorer 클릭 > data 폴더 > data 폴더 > com.example.fileex1 폴더 > file 폴더
- file.txt 다른 장소에 저장하기
· file.txt 우클릭 > Sava As > 저장하고 싶은 다른 장소 지정
② 파일 읽어오기
- 저장한 파일을 파일 읽기 버튼을 클릭하면 toast 메세지로 파일명이 뜨도록 구현
- MainActivity 안 읽기버튼 메서드 아래에 추가 작성
rBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
FileInputStream inFs = openFileInput("file.txt");
byte[] result = new byte[1024];
int resultLength = inFs.read(result);
String s = new String(result, "utf-8");
Toast.makeText(getApplicationContext(),s,
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(getApplicationContext(),e.getLocalizedMessage(),
Toast.LENGTH_SHORT).show();
}
}
});