YSHUSH

File 본문

Coding/Kotlin

File

코딩; 2022. 1. 27. 16:41
import java.io.*
import java.util.*

fun main(args: Array<String>) {

    // 저장매체 : file, Database

    val outString:String = "안녕하세요 Hello"
    val path = "D:\\myfile\\myfile.txt"

    // 파일 목록
    val files = File("D:\\").listFiles()
    println(Arrays.toString(files))

    // 파일 복사
    // File(path).copyTo(File("D:\\myfile\\myfile2.txt"))

    // 파일 내용 출력
    File(path).forEachLine { println(it) }

    // text 로 읽기
    val text = File(path).readText()
    println(text)

    /*
    // 파일 읽기
    val file = File(path)
    val inputStream:InputStream = file.inputStream()
    val inputStreamReader = InputStreamReader(inputStream)
    val br = BufferedReader(inputStreamReader)
    val sb = StringBuffer()

    var line:String?    // '?'붙여줘야 함

    try {
        line = br.readLine()
        while (line != null) {
            sb.append(line, "\n")
            line = br.readLine()
        }
        println(sb)
    }catch (e:Exception){
        e.printStackTrace()
    }finally{
        br.close()
    }
    */

    // use를 사용할 수 있다 <-- 코틀린
    /*
    val file = File(path)
    val inputStream:InputStream = file.inputStream()
    val readText = inputStream.bufferedReader().use { it.readText() }
    println(readText)
    */

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

    // 파일 쓰기
    val str:String = "안녕하세요\r\nWorld"
    val fPath = "D:\\myfile\\testfile.txt"

    // printWriter
     File(fPath).printWriter().use { it.println(str) }

    // bufferedWriter
    // File(fPath).bufferedWriter().use { it.write(str) }

    /*
    val writer = FileWriter(fPath)
    try {
        writer.write(str)
    }catch (e:Exception){
    }finally {
        writer.close()
    }
    */
}

'Coding > Kotlin' 카테고리의 다른 글

야구선수 관리 프로그램  (0) 2022.01.31
Map  (0) 2022.01.27
List  (0) 2022.01.27
Generic  (0) 2022.01.27
Composition  (0) 2022.01.27