[swift] Swift에서 파일을 특정 포맷으로 변환하는 방법

Swift는 강력한 프로그래밍 언어로, 다양한 파일 형식을 처리하고 변환할 수 있는 기능을 제공합니다. 이 글에서는 Swift를 사용하여 파일을 특정 포맷으로 변환하는 방법을 알아보겠습니다.

1. 파일 읽기

먼저, 변환하고자 하는 파일을 읽어와야 합니다. Swift에서 파일을 읽을 때, FileManager 클래스를 사용합니다. 아래의 예제 코드는 input.txt 파일을 읽어와서 문자열로 저장하는 방법을 보여줍니다.

let fileURL = URL(fileURLWithPath: "path/to/input.txt")
let fileContents = try String(contentsOf: fileURL)

위의 코드에서 “path/to/input.txt” 부분을 변환하고자 하는 파일의 경로로 수정해야 합니다.

2. 변환 로직 구현

파일을 읽어왔으면, 이제 변환 로직을 구현해야 합니다. 변환 로직은 파일의 내용을 분석하고, 특정 포맷으로 변환하는 작업을 수행합니다. 예를 들어, CSV 파일을 JSON 형식으로 변환하는 경우 다음과 같은 코드를 사용할 수 있습니다.

import Foundation

let csvFileContents = "name,age\nJohn,25\nAlice,30\n"
var jsonArray = [[String: Any]]()

let lines = csvFileContents.components(separatedBy: "\n")
let headers = lines[0].components(separatedBy: ",")
for line in lines[1..<lines.count] {
    let values = line.components(separatedBy: ",")
    var dictionary = [String: Any]()
    for (index, value) in values.enumerated() {
        let header = headers[index].trimmingCharacters(in: .whitespacesAndNewlines)
        dictionary[header] = value.trimmingCharacters(in: .whitespacesAndNewlines)
    }
    jsonArray.append(dictionary)
}

let jsonData = try JSONSerialization.data(withJSONObject: jsonArray, options: .prettyPrinted)
let jsonString = String(data: jsonData, encoding: .utf8)

위의 코드는 CSV 파일의 내용을 읽어와서, 첫 줄을 헤더로 사용하고 나머지 줄은 각각 JSON 객체로 변환합니다. 최종적으로 변환된 JSON을 문자열로 변환하여 저장합니다.

3. 파일 쓰기

마지막으로, 변환된 내용을 새로운 파일로 저장해야 합니다. 파일을 쓰기 위해서도 FileManager 클래스를 사용합니다. 아래의 예제 코드는 변환된 JSON을 output.json 파일에 저장하는 방법을 보여줍니다.

let outputFileURL = URL(fileURLWithPath: "path/to/output.json")
try jsonString?.write(to: outputFileURL, atomically: true, encoding: .utf8)

위의 코드에서 “path/to/output.json” 부분을 저장할 파일의 경로로 수정해야 합니다.

마무리

이제 Swift를 사용하여 파일을 원하는 포맷으로 변환하는 방법을 알아보았습니다. 파일을 읽고 변환 로직을 구현한 다음, 변환된 결과를 새로운 파일로 저장할 수 있습니다. Swift의 강력한 기능을 활용하여 다양한 파일 변환 작업을 수행해 보세요!


참고 자료: