MainActivity.java
--------------------------------------------------------------------------------------------------------------------
package com.example.kimeunchan.storage;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText mMemoEdit = null;
TextFileManager mTextFileManager = new TextFileManager(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMemoEdit=(EditText)findViewById(R.id.editText);
}
public void onClick(View v) {
switch(v.getId()) {
// 1. 파일에 저장된 메모 텍스트 파일 불러오기
case R.id.load: {
String memoData = mTextFileManager.load();
mMemoEdit.setText(memoData);
Toast.makeText(this,"불러오기 완료", Toast.LENGTH_LONG).show();
break;
}
// 2. editText에 입력된 메모를 텍스트 파일(memo.text)에 저장하기
case R.id.save: {
String memoData = mMemoEdit.getText().toString();
mTextFileManager.save(memoData);
mMemoEdit.setText("");
Toast.makeText(this,"저장 완료", Toast.LENGTH_LONG).show();
break;
}
// 3. 저장된 메모 파일 삭제하기
case R.id.delete: {
mTextFileManager.delete();
mMemoEdit.setText("");
Toast.makeText(this,"불러오기 완료", Toast.LENGTH_LONG).show();
}
}
}
}
---------------------------------------------------------------------------------------------
TextFileManager.java
package com.example.kimeunchan.storage;
import android.content.Context;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Created by kimeunchan on 2017-02-26.
*/
public class TextFileManager {
private static final String FILE_NAME = "Memo.txt";
// 메모 내용을 저장할 파일 이름
Context mContext = null;
public TextFileManager(Context context) {
mContext = context;
}
// 파일에 메모를 저장하는 함수
public void save(String strData) {
if(strData == null || strData.equals("")) {
return;
}
FileOutputStream fosMemo = null;
try {
// 파일에 데이터를 쓰기 위해서 output 스트림 생성
fosMemo = mContext.openFileOutput(FILE_NAME,Context.MODE_PRIVATE);
// 파일에 메모 적기
fosMemo.write(strData.getBytes());
fosMemo.close();
}catch(Exception e) {
e.printStackTrace();
}
}
// 저장된 메모를 불러오는 함수
public String load(){
try{
// 파일에서 데이터를 읽기 위해서 input 스트림 생성
FileInputStream fisMemo = mContext.openFileInput(FILE_NAME);
// 데이터를 읽어 온 뒤 , String 타입 객체로 반환
byte[] memoData = new byte[fisMemo.available()];
while(fisMemo.read(memoData)!= -1) {}
return new String(memoData);
}catch (IOException e){}
return "";
}
// 저장된 메모를 삭제하는 함수
public void delete() {
mContext.deleteFile(FILE_NAME);
}
}
--------------------------------------------------------------------------------------------------
activity_main.xml
--------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.kimeunchan.storage.MainActivity">
<Button
android:text="저장"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="34dp"
android:id="@+id/save"
android:layout_alignParentStart="true" />
<Button
android:text="불러오기"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:id="@+id/load"
android:layout_alignBaseline="@+id/save"
android:layout_alignBottom="@+id/save"
android:layout_toEndOf="@+id/save" />
<Button
android:text="삭제"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/load"
android:layout_alignParentEnd="true"
android:layout_marginEnd="11dp"
android:id="@+id/delete" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:hint="메모할 내용을 입력하세요."
android:id="@+id/editText"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/save"
android:layout_alignParentEnd="true" />
</RelativeLayout>