[파일읽기]Java 와 Kotlin 코드의 다른 스타일

2021. 10. 14. 15:53Android

728x90

 

#Java #Kotlin이 다른 #스타일 무엇일까?

#파일읽기 편

 

안녕하세요. 오늘 프로젝트를 짜면서 적용하고, 다른 사람도 이렇게 적용하는지 확인하고, 포스팅을 합니다.

 

제가 했던 것의 핵심만 간단명료하게 작성했습니다.

 

 

Java Style

AssetManaager assetManager = getAssetes();

// assets/test.json파일을 읽는 InputStream
try {
   InputStream is = assetManager.open("test.json");
   InputStreamReader isr = new InputStreamReader(is);
   BufferedReader reader = new BufferedReader(isr);

   StringBuffer buffer = new StringBuffer();
   String line = reader.readLine();

   // json 파일을 라인단위로 끝까지 json의 끝까지 들인다. 
   while( line != null ){
      buffer.append(line +"\n");
      line=reader.readLine();
   }

   // 읽어들인 json을 String 형태의 json
   String jsonData = bufffer.toString();

   Log.d("result",jsonData);
} catach( IOException e ){
   e.printStacktrace()
}

 

Kotlin Style

assets.open("test.json").run{
   val buffer = StringBuffer()

   val buffReader = this.bufferedReader(Charsets.UTF_8)

   buffReader.forEachLine {
      Log.d("readJson",it )
      buffer.append(it+"\n")
   }
   
   jsonData = buffer.toString()
   Log.d("jsonData",jsonData)
}

[배경 설명]

위의 기능은 BufferedReader를 이용하여 json파일을 불러옵니다.

불러온 json파일을 출력하는 내용입니다.

아주 간단한 내용이에요.

[본론]

첫번째로 눈에 띄는 차이는

JavaStyle에서는 약 20줄 가량의 코드입니다.

Kotlin은 10줄 정도의 코드로 할 수 있습니다.

Kotlin은 개발자의 가독성을 향상시켜 편리성을 제공하는 언어이니까요. 개발자라면 누구나 아는 for문이 이렇게 단축 될 수 있다는 건 정말 좋은 가독성을 지닌 언어라고 볼 수 있습니다.

실제로 이 코드들은 JVM의 바이트 코드로 변환되는 그런 효율성에 대해서는 논외로 하겠습니다.

두번째로는 bufferReader를 이용할 때 변수 선언하는 숫자가 훨씬 줄어 들었습니다.

JavaStyle은 5개 정도 사용하는데 반면,

Kotlin은 2개정도로 사용합니다.

네이밍 고통에서 해방

[참조 페이지]

Android Studio의 JSON 파일 파싱하는 기능 https://lcw126.tistory.com/101

Kotlin의 ForEachLine 설명 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/java.io.-file/for-each-line.html