[android] 안드로이드 파일 시스템과 파일 압축

안드로이드 앱을 개발하다보면 파일 시스템을 다루고, 파일을 압축하는 기능이 필요한 경우가 많습니다. 안드로이드는 리눅스 기반으로 파일 시스템을 관리하며, 파일 압축 기능을 지원하고 있어 유용하게 활용할 수 있습니다.

파일 시스템

1. 내부 저장소

안드로이드 앱은 기본적으로 내부 저장소에 데이터를 저장합니다. 내부 저장소는 다른 앱에서 접근할 수 없으며, 앱을 삭제하면 데이터도 함께 삭제됩니다.

2. 외부 저장소

앱 데이터를 외부 저장소에 저장하여 사용자가 데이터를 공유하거나 백업할 수 있도록 지원할 수 있습니다. 외부 저장소에 접근하려면 권한을 획들해야 합니다.

파일 압축

파일을 압축하여 저장하면 디스크 공간을 절약하고 네트워크 전송 시간을 단축할 수 있습니다. 안드로이드에서 파일을 압축하고 해제하기 위해 java.util.zip 패키지를 사용할 수 있습니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class FileZipper {
    public void zipFiles(String[] srcFiles, String destZipFile) throws IOException {
        try (FileOutputStream fos = new FileOutputStream(destZipFile);
             ZipOutputStream zos = new ZipOutputStream(fos)) {
            for (String srcFile : srcFiles) {
                File fileToZip = new File(srcFile);
                try (FileInputStream fis = new FileInputStream(fileToZip)) {
                    ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
                    zos.putNextEntry(zipEntry);
                    byte[] bytes = new byte[1024];
                    int length;
                    while ((length = fis.read(bytes)) >= 0) {
                        zos.write(bytes, 0, length);
                    }
                }
            }
        }
    }
}

압축 파일을 해제하기 위해서는 java.util.zip.ZipInputStream을 사용할 수 있습니다.

이처럼 안드로이드에서 파일 시스템을 다루고 파일을 압축하는 기능을 활용하여 데이터 관리 및 성능 향상에 기여할 수 있습니다.

참고 자료