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")))
}
}
}
'Language > Kotlin' 카테고리의 다른 글
2021 - 05 - 15, Kotlin (0) | 2021.05.16 |
---|---|
2021 - 05 - 14, Kotlin (0) | 2021.05.16 |
2021 - 05 - 12, Kotlin (0) | 2021.05.13 |
2021 - 05 - 11, Kotlin (0) | 2021.05.13 |
2021 - 05 - 10, Kotlin (0) | 2021.05.13 |