Kotlin Programming Intermediate - 10

htwenty-1·2022년 1월 26일
0

Kotlin for Android

목록 보기
10/11
post-thumbnail

열번째 포스팅은 코틀린에서의 파일 입출력입니다.

기본 변수 생성

import java.io.*
import java.util.*

fun main(args: Array<String>) {

	val outString:String = "hello"			// 파일에 추가해 줄 문자열
	val path:String = "/Users/user/test/test.rtf"	// 텍스트 파일 샘플

}

디렉터리 내 파일 목록

import java.io.*
import java.util.*

fun main(args: Array<String>) {

	val files = File("/Users").listFiles()		// 지정해 준 경로 내의 파일을 리스트로 생성
	println(Arrays.toString(files))			// 리스트 출력
}

파일 복사

fun main(args: Array<String>) {

	// val path:String = "/Users/user/test/test.rtf"

	// copyTo() 사용
	File(path).copyTo(File("/Users/user/test/test2.rtf"))

}

파일 내용 출력

import java.io.*
import java.util.*

fun main(args: Array<String>) {

	// forEachLine으로 반복하며 출력
	File(path).forEachLine { println(it) }

}

text로 읽기

import java.io.*
import java.util.*

fun main(args: Array<String>) {

	// readText()로 텍스트 읽기
	var text = File(path).readText()
	println(text)

}

파일 읽기 1 : 전형적인 방법

import java.io.*
import java.util.*

fun main(args: Array<String>) {

    val file = File(path)
    val inputStream:InputStream = file.inputStream()
    val inputStreamReader = InputStreamReader(inputStream)
    var line:String?
    val br = BufferedReader(inputStreamReader)
    val sb = StringBuffer()

    try {
        line = br.readLine()
        while (true) {
            sb.append(line, "\n")
            line = br.readLine()
        }

        println(sb)
    } catch (e:Exception) {
        e.printStackTrace()
    }

}

파일 읽기 2 : use를 사용하여 좀 더 간략하게 코드 작성

import java.io.*
import java.util.*

fun main(args: Array<String>) {

    val file = File(path)
    val inputStream:InputStream = file.inputStream()
    val readText = inputStream.bufferedReader().use { it.readText() }
    println(readText)

}

파일 읽기 3 : useLine 사용하기

import java.io.*
import java.util.*

fun main(args: Array<String>) {

    val bufferedReader = File(path).bufferedReader()
    val lineList = mutableListOf<String>()
    bufferedReader.useLines { lines -> lines.forEach { lineList.add(it) } }
    lineList.forEach { println(it) }

}

파일 쓰기

import java.io.*
import java.util.*

fun main(args: Array<String>) {

    val str:String = "안녕하세요\r\nHello"
    // File(path).printWriter().use { it.println(str) }


    val writer = FileWriter(path)
    try {
        writer.write(str)
    } catch (e:Exception) {
        e.printStackTrace()
    } finally {
        writer.close()
    }

}
profile
tried ? drinkCoffee : keepGoing;

0개의 댓글