Notice
Recent Posts
Recent Comments
Link
투케이2K
87. (AndroidStudio/android/java) 텍스트 (text) 파일 쓰기 (저장) 및 읽기 (호출) 수행 본문
Android
87. (AndroidStudio/android/java) 텍스트 (text) 파일 쓰기 (저장) 및 읽기 (호출) 수행
투케이2K 2021. 3. 15. 18:27/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//================ [AndroidManifest.xml 파일] ================
//TODO ==== 퍼미션 정의 부분 ====
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//TODO ==== application 부분 ====
android:requestLegacyExternalStorage="true"
//================ [java 파일] ================
/** [필수 사항]
1. Manifest에 정의한 퍼미션 허용을 요청 받아야합니다
2. try catch 에러 구문 처리를 실시해야합니다
*/
//TODO ==== 전역변수 정의 부분 ====
public static String saveStorage = ""; //저장된 파일 경로
public static String saveData = ""; //저장된 파일 내용
//TODO ==== 텍스트 저장 메소드 ====
public void setSaveText(String data){
try {
saveData = data; //TODO 변수에 값 대입
String textFileName = "/Data.txt";
//TODO 파일 생성
File storageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/SaveStorage"); //TODO 저장 경로
//TODO 폴더 생성
if(!storageDir.exists()){ //TODO 폴더 없을 경우
storageDir.mkdir(); //TODO 폴더 생성
}
long now = System.currentTimeMillis(); //TODO 현재시간 받아오기
Date date = new Date(now); //TODO Date 객체 생성
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
String nowTime = sdf.format(date);
//BufferedWriter buf = new BufferedWriter(new FileWriter(storageDir+textFileName, true)); //TODO 다중으로 내용적음 (TRUE)
BufferedWriter buf = new BufferedWriter(new FileWriter(storageDir+textFileName, false)); //TODO 한개 내용만 표시됨 (FALSE)
buf.append("["+nowTime+"]" + "\n["+saveData+"]"); //TODO 날짜 쓰기
buf.newLine(); //TODO 개행
buf.close();
saveStorage = String.valueOf(storageDir+textFileName); //TODO 경로 저장 /storage 시작
//saveStorage = String.valueOf(storageDir.toURI()+textFileName); //TODO 경로 저장 file:/ 시작
S_Preference.setString(getApplication(), "saveStorage", String.valueOf(saveStorage)); //TODO 프리퍼런스에 경로 저장한다
S_Preference.setString(getApplication(), "saveStorage", String.valueOf(saveStorage)); //TODO 프리퍼런스에 경로 저장한다
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_TextFile > 저장한 텍스트 파일 확인 실시]");
Log.d("","\n"+"[경로 : "+String.valueOf(saveStorage)+"]");
Log.d("","\n"+"[제목 : "+String.valueOf(nowTime)+"]");
Log.d("","\n"+"[내용 : "+String.valueOf(saveData)+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
Toast.makeText(getApplication(),"텍스트 파일이 저장되었습니다",Toast.LENGTH_SHORT).show();
}
catch (Exception e){
e.printStackTrace();
}
}
//TODO ==== 텍스트 호출 메소드 ====
public void getSaveText(){
try {
saveStorage = S_Preference.getString(getApplication(), "saveStorage"); //특정 데이터 가져온다
if(saveStorage != null && saveStorage.length() > 0){
String data = "";
String line = ""; //TODO 한줄씩 읽기
File storageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/SaveStorage"); //TODO 저장 경로
//TODO 폴더 생성
if(!storageDir.exists()){ //TODO 폴더 없을 경우
storageDir.mkdir(); //TODO 폴더 생성
}
try {
BufferedReader buf = new BufferedReader(new FileReader(saveStorage));
while((line=buf.readLine())!=null){
data += line;
data += "\n";
}
buf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_TextFile > 저장된 텍스트 파일 확인 실시]");
Log.d("","\n"+"[경로 : "+String.valueOf(saveStorage)+"]");
Log.d("","\n"+"[내용 : "+String.valueOf(data)+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
}
else {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_TextFile > 저장된 텍스트 파일 확인 실시]");
Log.d("","\n"+"[경로 : "+""+"]");
Log.e("//===========//","================================================");
Log.d("---","---");
Toast.makeText(getApplication(),"저장된 텍스트가 없습니다. 텍스트를 저장해주세요",Toast.LENGTH_SHORT).show();
}
}
catch (Exception e){
Toast.makeText(getApplication(),"저장된 텍스트가 없습니다. 텍스트를 저장해주세요",Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments