public class MainActivity extends AppCompatActivity {
EditText editText;
TextView text;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
text = findViewById(R.id.text);
Button btnWrite = findViewById(R.id.btnWrite);
btnWrite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
writeFile();
}
});
Button btnRead = findViewById(R.id.btnRead);
btnRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
readFile();
}
});
}
// 파일에 쓰기
public void writeFile() {
String text = editText.getText().toString() + "\n";
// 위치 - /data/data/패키지명/files/test.txt
File file = new File(getFilesDir(), "test.txt");
// true - 기존 파일에 이어서 쓰기
try (FileOutputStream fos = new FileOutputStream(file, true)) {
fos.write(text.getBytes("UTF-8"));
fos.flush();
}
catch (IOException e) {
e.printStackTrace();
}
}
// 파일에서 읽기
public void readFile() {
// 위치 - /data/data/패키지명/files/test.txt
File file = new File(getFilesDir(), "test.txt");
try ( FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr); ) {
// BufferedReader 를 사용하여 한줄씩 읽기
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
fis.close();
text.setText(sb.toString());
}
catch (IOException e) {
e.printStackTrace();
}
}
}