我一直在开发一个小应用程序,以允许我和我的朋友创建我们自己的虚拟抽认卡。这些卡片排列在映射为通过Spinner -s 访问的文本文件中。应用程序的用户定义他们自己的微调器,从而定义研究类别。
首次启动活动时,我使用Scanner从名为SpinnersTXT.txt的文本文件中读取数据,我逐行运行它,并接受 Name-Type-Elements 的严格语法,实例化文件中定义的Spinner . 但这并不完全重要。我实际上只是使用扫描仪从文件中读取
如果稍后添加新的Spinner,则其信息将添加到文本文件中。当我运行我的代码时,我没有遇到与我的异常处理未涵盖的任何内容相关的错误,但我知道新的 Spinner-info 没有被添加到 TXT 文件中,和/或我的扫描仪没有访问正确的文件Spinner 对象没有被添加(我确实记得addView对父ScrollView的调用)。
--> 所以首先我必须问这是否是内部存储的使用方式,我想从我的应用程序中访问和编辑这个文件,使用这个位置,可以吗?
除此之外,这是我尝试访问该文件并在它不存在时创建它的代码。我从另一个 stackoverflow 问题(我已经做过研究)中得出这个结论,但希望得到一些验证。
try{
fileProcessorScanner = new Scanner("Saves/SpinnersTXT.txt");
}catch(Exception e){
e.printStackTrace();
File path = new File(getFilesDir(),"Saves");
path.mkdirs();
File SpinnersTXT = new File(path,"SpinnersTXT.txt");
}
--> 这段代码会成功获取文件吗?如果文件不存在,catch 会创建文件吗?我很抱歉我是 IO 新手,但即使在阅读了我的初学者书籍的章节后,我仍然看到如此多形式的输入和输出,我很容易感到困惑......但我觉得我必须使用 Scanner 的 nextLine() 方法,尽管大多数示例甚至都没有触及扫描仪。
最后,这是我尝试写入该文件的代码(如果不存在,则由我的 catch 创建):
outGoingSpinners = openFileOutput("SpinnersTXT.txt",MODE_WORLD_READABLE);
outGoingSpinners.write(NEW_SPIN_OPEN.getBytes());
outGoingSpinners.write(tempNewSpinnerName.getBytes());
outGoingSpinners.write(tempNewSpinnerType.getBytes());
outGoingSpinners.write(tempNewSpinnerInitializer.getBytes());
outGoingSpinners.write(NEW_SPIN_CLOSE.getBytes());
outGoingSpinners.close();
--> 这会将我的信息保存到与上面相同的文本文件中吗?我的转义序列会得到尊重和保存吗?
我真诚地感谢任何和所有的帮助。你们所有人都很有见地,这个社区使我的许多梦想成为现实。有时我只是迷失了方向,特别是在各种形式的 IO 和语言的细微差别下。谢谢你们。