Language/Kotlin
2021 - 05 - 13, Kotlin
Cs.Woo
2021. 5. 14. 09:11
JSON 파일 관련 예제생성
import com.fasterxml.jackson.module.kotlin.readValue
import java.io.File
class MembersRepository {
// 멤버 내용을 담아줄 비어있는 리스트 선언
var members :MutableList<Member> = makeMemberDataFile()
fun addMember(memId: String, memPW: String, memNick: String, memName: String, memPHNum: String, memEmail: String): Int {
// Member Index
var lastMembersIndex = (members.lastIndex) + 1
val memIndex = ++lastMembersIndex
// 프로그램을 종료하면 자동으로 모든 내용이 저장됨
// 프로그램을 시작하면 자동으로 모든 내용을 읽어옴
val regDate = util.getNowDateStr()
val updateDate = util.getNowDateStr()
// 멤버 내용을 members에 담아준다.
members.add(Member(memIndex, memId, memPW, memNick, memName, memPHNum, memEmail, regDate, updateDate))
//println("Member Saving..")
//saveMember()
//println("Member Saving Complete")
return memIndex
}
fun makeMemberDataFile(): MutableList<Member> {
val members = mutableListOf<Member>()
var filePath = "data/MembersData/MemberData.json"
if(!File(filePath).exists()){
File(filePath).parentFile.mkdirs()
return members
}
return members
}
@JvmName("getMembers1")
fun getMembers(): MutableList<Member> {
return members
}
fun getMemberByMemId(userId: String): Member? {
for ( member in members ){
if ( member.memId == userId ){
return member
}
}
return null
}
fun isAddableId(memId: String): Boolean {
val addableTF = getMemberByMemId(memId)
return addableTF == null
}
fun saveMember(){
for ( member in members){
mapper.writerWithDefaultPrettyPrinter().writeValue(File("data/MembersData/${member.memIndex}.json"),member)
}
}
fun getSavedMember(){
var filePath = "data/MembersData"
var size = File(filePath).list().size
for ( i in 1 .. size) {
members.add(mapper.readValue<Member>(File("data/MembersData/${i}.json")))
}
}
}