앱 이름 : com.example.myfile
내부저장소 경로 : /data/user/0/com.example.myfile
입력값이 앱을 종료하고 다시 켜도 이전 입력값이 남아 있을 수 있게한다.
@Override
protected void onStop() {
super.onStop();
//텍스트 입출력을 위해서는 I/O stream을 reader/writer 로 변환해야함
try {
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(openFileOutput("memo.txt",MODE_PRIVATE))
//default 저장경로는 /data/user/0/com.example.myfile/files 밑에인거 같음
//openFileOutput : string을 바이너리 스트림이된다.
);
bw.write(et.getText().toString());
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/data/user/0/com.example.myfile/files/memo.txt 생성
파일 쓸때 아래 방법도 가능(자바에서만 가능하고 안드로이드에서는 불가)
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));
bw.write("123123");
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
File file = new File(getFilesDir(),"memo.txt");//파일 주소값 생성 /data/user/0/com.example.myfile/files/memo.txt
Log.d(TAG, "file path: "+file);
if(!file.exists()){//처음엔 이 파일이 없음
return;
}
BufferedReader br = null;
try {
br = new BufferedReader(
new InputStreamReader(openFileInput("memo.txt")));
//InputStreamReader(InputStream in)
//openFileInput : stirng to InputStream
et.setText(br.readLine());
br.close();
} catch (Exception e) {
e.printStackTrace();
}
파일 읽을때 아래 방법도 가능(자바에서만 가능하고 안드로이드에서는 불가)
try {
BufferedReader br = new BufferedReader(new FileReader("output.txt"));
String line;
while((line=br.readLine())!=null){
//한줄씩 읽는다
}
} catch (IOException e) {
e.printStackTrace();
}
깃헙
https://github.com/yoosh199/Andorid-Study/tree/main/MyFile