[android] 안드로이드 파일 시스템과 파일 이동 및 복사
안드로이드 파일 시스템
안드로이드 운영체제는 리눅스 커널을 기반으로 하며, 파일 시스템 구조 또한 리눅스와 유사합니다. 안드로이드 앱은 앱 전용 디렉토리 내에서만 파일을 생성, 수정, 삭제하는 것이 일반적입니다. 일반적으로 내부 저장소와 외부 저장소로 나뉩니다.
내부 저장소
내부 저장소는 앱별로 격리되어 있으며, 다른 앱은 해당 디렉토리에 접근할 수 없습니다. 앱이 설치되면, 기본 디렉토리는 data/data/패키지명/
입니다.
외부 저장소
외부 저장소는 SD 카드 또는 USB 저장장치와 같은 외부 저장 매체를 가리킵니다. 앱이 외부 저장소에 접근하기 위해서는 READ_EXTERNAL_STORAGE
또는 WRITE_EXTERNAL_STORAGE
권한이 필요합니다.
파일 이동 및 복사
파일 이동
안드로이드에서 파일을 이동하기 위해서는 파일을 복사한 뒤, 원본 파일을 삭제해야 합니다. 다음은 파일 이동을 위한 간단한 코드 예제입니다.
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class FileMoveExample {
public static void moveFile(String sourcePath, String destinationPath) {
File source = new File(sourcePath);
File destination = new File(destinationPath);
try {
FileUtils.moveFile(source, destination);
} catch (IOException e) {
e.printStackTrace();
}
}
}
파일 복사
파일을 복사하기 위해서는 FileInputStream
과 FileOutputStream
을 사용하여 파일의 내용을 읽고 쓰는 작업을 수행해야 합니다. 아래는 파일을 복사하는 간단한 코드 예제입니다.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopyExample {
public static void copyFile(String sourcePath, String destinationPath) {
try {
File source = new File(sourcePath);
File destination = new File(destinationPath);
FileInputStream fileInputStream = new FileInputStream(source);
FileOutputStream fileOutputStream = new FileOutputStream(destination);
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
fileInputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예제를 통해 안드로이드 파일 시스템에 대한 간단한 이해와 파일 이동, 복사에 대한 방법을 살펴보았습니다. 파일 시스템의 구조와 파일 처리에 대해 더 많은 정보를 얻고 싶다면, 관련 레퍼런스를 참고하시기 바랍니다.
안드로이드 파일 시스템 수정 - Java.io 패키지 레퍼런스