package com.tlz.myapplication.day7_时序图
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.File
import java.io.FileReader
import java.io.FileWriter
/**
1.从0-1写项目
找对象
抽类
梳理类与类之间的关系
类图
(写功能的时序图)
写代码
写的过程中对以上内容进行迭代
2.阅读别人的代码
首先找到入口点
理清程序的执行顺序
类图 —> 把控全局
梳理复杂功能的时序图
数据持久化
1.将数据保存到服务器
2.本地的数据库 Room
3.文件(内存 硬盘)
文本txt -> 字符流 -> 字符输入流/字符输出流(字符IO流)
二进制 image MP4 MP3 -> 字节流 -> 字节输入流/字节输出流(字节IO流)
流: 无法一次性完成读写 多次少量读写
字符流:Writer/Reader
字节流:OutputerStream/InputStream
内存 -> 外部(打印机 硬盘 网络)输出流
外部 -> 内存 输入流
本地/硬盘 --> 内存(变量) --> 网络中的服务器
File类管理文件操作
"C:\Users\lenovo\Desktop\study"
缓冲输入输出流
BufferedWriter/BufferedReader
创建文件
打开文件
写入数据
读取数据
关闭文件
*/
fun main() {
objectFileOpt()
}
//文件基本操作
fun fileOpt1(){
//创建一个文件对象来存储据
// File("C:/Users/lenovo/Desktop/study")
val file = File("C:/Users/lenovo/Desktop/","try")
//写入数据
// file.writeText("hello world!")
// file.appendText("hello sunshine!")
//读取数据
// val result = file.readText()
// println(result)
val fileWriter = FileWriter(file)
val bufferedWriter = BufferedWriter(fileWriter)
val bw = BufferedWriter(FileWriter("C:/Users/lenovo/Desktop/try"))
bw.write("hello,flouer")
bw.close()
val br = BufferedReader(FileReader("C:/Users/lenovo/Desktop/try"))
val str = br.readText()
br.close()
println(str)
}
//缓存输入输出操作
fun bufferFileOpt1(){
}
class Car(val brand:String,val color:String)
//将一个对象写入文件
/**
Gson开源库
字符串 -> 对象 fromJSON()
对象 -> 字符串 tojson()
*/
fun objectFileOpt(){
val car = Car("banch","black")
//创建Gson对象
val gson = Gson()
//将对象转化为Json格式字符串
val jsonString = gson.toJson(car)
//创建文件对象
val file = File("C:/Users/lenovo/Desktop/","try")
//将字符串写入文件中
file.writeText(jsonString)
}
fun objectReadFileOpt(){
//创建文件对象
val file= File("C:/Users/lenovo/Desktop/try")
//读取对象
val string = file.readText()
//创建Gson对象
val gson = Gson()
//将Json格式字符串转化为对象
val car = gson.fromJson(string,Car::class.java)
println("${car.brand} ${car.color}")
}
fun objectsSave(){
val cars = listOf(
Car("奔驰","黑色"),
Car( "宝马","白色"),
Car("保时捷","棕色")
)
//创建gson对象
val gson = Gson()
//将list集合转化为字符串
val jsonString = gson.toJson(cars)
//创建文件对象
val file = File("C:/Users/lenovo/Desktop/","try")
//将字符串写入文件中
file.writeText(jsonString)
}
fun objectsRead(){
//创建文件对象
val file= File("C:/Users/lenovo/Desktop/try")
//读取字符串
val jsonString = file.readText()
//创建Gson对象
val gson = Gson()
//将Json格式字符串转化为集合对象
val objectToken = object : TypeToken<Car>(){}
val cars = gson.fromJson<List<Car>>(jsonString,objectToken.type)
cars.forEach{
println("${it.brand} ${it.color}")
}
}