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

안드로이드는 리눅스 기반의 운영 체제로서, 파일 시스템 구조와 관련된 많은 기능을 제공합니다. 또한 파일을 압축하여 저장하고 압축을 해제하는 기능도 포함되어 있습니다.

본 블로그에서는 안드로이드의 파일 시스템 구조에 대해 알아보고, 파일을 압축하고 해제하는 방법에 대해 설명하겠습니다.

안드로이드 파일 시스템 구조

안드로이드는 여러 가지 중요한 디렉토리로 구성되어 있습니다.

/system 디렉토리

/system 디렉토리는 안드로이드 운영 체제의 핵심 부분이 위치합니다. 여기에는 운영 체제의 핵심 파일 및 라이브러리가 포함되어 있습니다.

/data 디렉토리

/data 디렉토리는 사용자 및 어플리케이션 데이터가 저장되는 곳입니다. 각 어플리케이션은 /data 디렉토리 내에 별도의 디렉토리를 가지고 있습니다.

파일 압축 방법

안드로이드 앱에서 파일을 압축하고, 압축을 해제하는 방법은 매우 간단합니다.

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

public class FileCompression {
    public static void compressFile(String sourceFile, String compressedFile) {
        try {
            byte[] buffer = new byte[1024];

            FileOutputStream fos = new FileOutputStream(compressedFile);
            ZipOutputStream zos = new ZipOutputStream(fos);
            ZipEntry ze = new ZipEntry(sourceFile);
            zos.putNextEntry(ze);
            FileInputStream in = new FileInputStream(sourceFile);

            int len;
            while ((len = in.read(buffer)) > 0) {
                zos.write(buffer, 0, len);
            }

            in.close();
            zos.closeEntry();

            zos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 주어진 파일을 압축한 후, 지정된 위치에 저장하는 간단한 파일 압축 메서드입니다.

파일 압축 해제 방법

파일을 압축해제하는 방법은 다음과 같습니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class FileDecompression {
    public static void decompressFile(String zipFile, String outputFolder) {
        byte[] buffer = new byte[1024];

        try {
            File folder = new File(outputFolder);
            if (!folder.exists()) {
                folder.mkdir();
            }

            ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile));
            ZipEntry ze = zis.getNextEntry();

            while (ze != null) {
                String fileName = ze.getName();
                File newFile = new File(outputFolder + File.separator + fileName);

                new File(newFile.getParent()).mkdirs();

                FileOutputStream fos = new FileOutputStream(newFile);

                int len;
                while ((len = zis.read(buffer)) > 0) {
                    fos.write(buffer, 0, len);
                }

                fos.close();
                ze = zis.getNextEntry();
            }

            zis.closeEntry();
            zis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 지정된 위치에서 압축 파일을 읽어와 압축을 해제하는 파일 압축 해제 메서드입니다.

안드로이드 개발에서 파일 시스템 구조와 파일 압축에 대한 기본적인 이해는 매우 중요합니다. 이러한 기능을 활용하여 안드로이드 앱 개발에 활용할 수 있습니다.


참고 자료: