티스토리 뷰
f.creatNewFile();
FileWriter fw = new FileWriter(f);
BufferedWriter bfw = new BufferedWriter(fw);
FileOutputStream fos = new FileOutputStream(파일명);
등 이런식으로 파일을 생성하여 쓸 수 있지만. 이미 쓰여진 파일 뒤로 이어서 적어지지는 않고 매번 덮어쓰기만 한다.
안드로이드에서 이렇게 덮어 쓰지않고 파일포인트를 마지막에 두고 이어서 사용할 방법을 찾아보니
FileOutputStream fos = openFileOutput("파일명",MODE_APPEND);
방법이 있었지만 이 방법에서 파일명에는 경로가 올 수 없었다.( / 사용하면 에러남) 오직 파일명만 적을 수 있으며
파일이 저장되는 경로는 /data/data/패키지명/files 디렉토리로 정해져 있어서 임의경로로 저장하여 쓸 수 없었다.
이 외 파일안에 이어서 쓸 수 있는 방법을 찾던 중 RandomAccessFile 클래스를 이용하여 파일 포인트를 마지막으로
이동하여 파일 이어쓰는 방법과 파일을 쭉 읽고 변수에 저장하여 새로 추가할 내용을 그 변수뒤에 추가한 뒤에 파일에
덮어 쓰는 방법도 있었지만 가장 간단한 방법으로는
BufferedWriter bfw = new BufferedWriter(new FileWriter(파일명,true));
코드 하나면 덮어 쓰지않고 파일을 이어쓰기가 가능하였다.
그리고 안드로이드에서 파일 입출력(외부메모리)을 하기 위해서는 Manifest에
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
permission을 넣어 줘야 한다.
기존파일에 덧붙여서 내용을 저장하려면, RandomAccessFile 클래스를 사용해야 합니다. 아래는 간단한 예제 입니다.
출처 : http://finetia.egloos.com/1422965
import java.io.IOException;
import java.io.RandomAccessFile;
public class UsingFile {
public UsingFile() {
}
public static void main(String[] args) {
try {
String name = “c:\\tmpfile.txt”;
RandomAccessFile raf = new RandomAccessFile(name, “rw”);
raf.seek(raf.length());
raf.writeBytes(“\r\n append”);
}
catch (IOException e) {
System.out.println(“Error opening file: ” + e);
}
}
}
'Development' 카테고리의 다른 글
[Android] 외부에 저장되어 있는 미디어리스트보기 (0) | 2011.11.04 |
---|---|
[Android] 내부저장 메모리 이용 (0) | 2011.11.04 |
[Android] ViewFlipper (0) | 2011.10.31 |
[Android] 타 어플의 Activity 실행 (0) | 2011.10.26 |
[Android] performClick() (0) | 2011.10.26 |
- Total
- Today
- Yesterday