【发布时间】:2018-03-05 05:56:32
【问题描述】:
我要做的是测试文件“turma.dat”是否已经存在,如果存在我就打开它,如果它不存在,我创建一个新文件并保存它。当我第一次启动应用程序时,它会创建文件,但每次我再次启动它时,文件都会以白色创建。
主活动:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
var turma : Turma
var file = File("turma.dat")
if(file.exists()) {
turma = this.abrirArquivo()
}else{
turma = Turma()
ArquivoUtils(turma, this.applicationContext)
}
方法 abrirArquivo:
@Throws(IOException::class, ClassNotFoundException::class)
fun abrirArquivo(): Turma {
val fis = this.applicationContext.openFileInput("turma.dat")
val ois = ObjectInputStream(fis)
return ois.readObject() as Turma
}
类ArquivoUtils:(负责接收Turma对象添加到文件并保存)
class ArquivoUtils internal constructor( var turminha: Turma, var context : Context) {
internal val fos = this.context.openFileOutput("turma.dat", Context.MODE_PRIVATE)
internal val oos = ObjectOutputStream(fos)
init {
this.salvarArquivo()
this.closeFile()
}
@Throws(IOException::class)
private fun salvarArquivo() {
oos.writeObject(turminha)
this.closeFile()
}
@Throws(IOException::class)
fun closeFile() {
oos.close()
}
【问题讨论】:
-
“白创造”是什么意思?
-
文件为空。
-
所以
File.exists("turma.dat")返回真?您是否使用调试器单步执行了代码? -
我真的不知道这是怎么回事。我对在 Android 上使用文件感到非常困惑。我在桌面上处理了很多文件,但我不知道如何测试我的文件是否已经存在于 android 中。