[kotlin] 파일을 특정 크기로 분할하는 방법
Kotlin은 자바와 같이 파일을 처리하는데 유용한 기능을 제공합니다. 파일을 특정 크기로 분할하는 방법에 대해 알아보겠습니다.
- 파일 경로 지정하기
먼저 처리할 파일의 경로를 지정해야 합니다. 파일 경로는 File
클래스를 사용하여 지정할 수 있습니다.
val filePath = "파일 경로"
val file = File(filePath)
- 분할할 크기 정하기
파일을 분할할 크기를 정해야 합니다. 일반적으로 바이트 단위로 크기를 지정합니다. 예를 들어, 1MB를 기준으로 파일을 분할하려는 경우 다음과 같이 크기를 정할 수 있습니다.
val fileSize = 1 * 1024 * 1024 // 1MB
- 파일 분할하기
파일을 지정한 크기로 분할하는 함수를 작성합니다. 아래의 코드는 파일을 분할하여 새로운 파일들을 생성하는 예시입니다.
fun splitFile(file: File, fileSize: Long) {
val fileName = file.name
val inputFileSize = file.length()
val numberOfParts = inputFileSize / fileSize
var offset = 0L
var bytesRemaining = inputFileSize
var bytesRead: Int
val buffer = ByteArray(fileSize.toInt())
BufferedInputStream(FileInputStream(file)).use { inputStream ->
for (partNumber in 1..numberOfParts) {
bytesRead = inputStream.read(buffer)
if (bytesRead <= 0) break
val partFileName = "$fileName.part$partNumber"
val outputFilePath = file.parentFile.absolutePath + File.separator + partFileName
BufferedOutputStream(FileOutputStream(outputFilePath)).use { outputStream ->
outputStream.write(buffer, 0, bytesRead)
}
offset += bytesRead
bytesRemaining -= bytesRead
}
}
}
위의 함수를 사용하여 파일을 분할하려면 다음과 같이 호출할 수 있습니다.
splitFile(file, fileSize)
위의 예시에서는 파일을 지정한 크기로 분할하여 .part
확장자를 가진 여러 개의 파일을 생성합니다.
이제 Kotlin을 사용하여 파일을 특정 크기로 분할하는 방법을 알게 되었습니다. 이를 통해 큰 파일을 처리하거나 네트워크 전송을 위해 파일을 나눌 수 있습니다.